Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 关于Matlab数组操作的入门级问题

大家好。我有这个问题要问。在C编程中,如果我们想在一个数组中存储多个值,则可以使用如下循环来实现:

j=0; //initialize for (idx=1,idx less than a constant; idex++) { slope[j]=(y2-y1)/(x2-x1); j++; } 我的问题是在Matlab中,我们有没有更简单的方法来获得相同的数组“ slope”而无需手动增加j?就像是:

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



回答:

这样的操作通常可以不循环而完成。

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

slope = ones(numRows,numCols) * (y2-y1)/(x2-x1); 其中numRows和numCols是数组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的第二个元素与第一个元素之间的差来计算斜率的第一个元素。另外,请注意./而不是/ 。点使它成为逐个元素的运算,这意味着我将分子中数组的第一个元素除以分母中数组的第一个元素,依此类推。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 19:41


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.