Matlab数组运算入门级问题

发布于 2024-10-12 06:56:06 字数 353 浏览 3 评论 0原文

嘿伙计们。我有这个问题要问。在 C 编程中,如果我们想在一个数组中存储多个值,我们可以使用这样的循环来实现:

j=0; //initialize  
for (idx=1,idx less than a constant; idex++)  
{  
    slope[j]=(y2-y1)/(x2-x1);  
    j++;  
}  

我的问题是在 Matlab 中我们是否有更简单的方法来获得相同的数组“斜率”而无需手动增加 j?比如:

for idx=1:constant  
    slope[]=(y2-y1)/(x2-x1);

谢谢!

Hey guys. I have this question to ask. In C programming, if we want to store several values in an array, we implement that using loops like this:

j=0; //initialize  
for (idx=1,idx less than a constant; idex++)  
{  
    slope[j]=(y2-y1)/(x2-x1);  
    j++;  
}  

My question is in Matlab do we have any simpler way to get the same array 'slope' without manually increasing j? Something like:

for idx=1:constant  
    slope[]=(y2-y1)/(x2-x1);

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟凡古楼 2024-10-19 06:56:06

此类操作通常无需循环即可完成。

例如,如果所有条目的斜率相同,您可以编写

slope = ones(numRows,numCols) * (y2-y1)/(x2-x1);

其中 numRowsnumCols 是数组 slope 的大小。

如果您有 y 值和 x 值列表,并且想要每个点的斜率,则可以调用

slope = (y(2:end)-y(1:end-1))./(x(2:end)-x(1:end-1)

并一次性获取所有内容。注意,y(2:end)是从第二个到最后一个的所有元素,y(1:end-1)是从第一个到第二个的所有元素持续下去。因此,斜率的第一个元素是根据 y 的第二个元素和第一个元素之间的差值计算的。另请注意 ./ 而不是 /。点使其成为逐元素运算,这意味着我将分子中数组的第一个元素除以分母中数组的第一个元素,依此类推。

Such operations can usually be done without looping.

For example, if the slope is the same for all entries, you can write

slope = ones(numRows,numCols) * (y2-y1)/(x2-x1);

where numRows and numCols are the size of the array slope.

If you have a list of y-values and x-values, and you want the slope at every point, you can call

slope = (y(2:end)-y(1:end-1))./(x(2:end)-x(1:end-1)

and get everything in one go. Note that y(2:end) are all elements from the second to the last, and y(1:end-1) are all elements from the first to the second to last. Thus, the first element of the slope is calculated from the difference between the second and the first element of y. Also, note the ./ instead of /. The dot makes it an element-wise operation, meaning that I divide the first element of the array in the numerator by the first element of the array in the denominator, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文