Matlab数组运算入门级问题
嘿伙计们。我有这个问题要问。在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此类操作通常无需循环即可完成。
例如,如果所有条目的斜率相同,您可以编写
其中
numRows
和numCols
是数组slope
的大小。如果您有 y 值和 x 值列表,并且想要每个点的斜率,则可以调用
并一次性获取所有内容。注意,
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
where
numRows
andnumCols
are the size of the arrayslope
.If you have a list of y-values and x-values, and you want the slope at every point, you can call
and get everything in one go. Note that
y(2:end)
are all elements from the second to the last, andy(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 ofy
. 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.