[英]Conversion of a 'for' loop with an increment of 25 from C to MATLAB
我有一个用C编写的for
循环:
for (int i = 0; i < 1000; i+=25)
如何将其转换为MATLAB?
MATLAB for循环语法是
for i = values
program statements
:
end
其中values
是其中之一
start:end
start:step:end
,或 表单start:end
假定步长为1
,而您希望步长(或增量)为25,因此请使用第二种形式。 根据您的问题, for(int i = 0; i < 1000; i+=25)
生成一个数字列表0 25 50 ... 950 975
,即它不包括1000
(注意i < 1000;
在for
循环),所以我们不能在MATLAB语法中使用end=1000
。 而是使用end = 1000-25 = 975
:
for i = 0:25:975
program statements
:
end
将产生与C等价物相同的i
值。
注意 :请参阅我对Mithun Sasidharan的回答的评论。 他的回答得到不同数量的C和MATLAB for循环(和他似乎已经放弃了for
他的MATLAB的答案)。 他的回答让0 25 50 ... 950 975
为C环和0 25 50 ... 950 975 1000
为他的MATLAB代码。
编辑 :Aashish Thite的答案提出了关于循环和数组索引的一个重要观点,它在C和MATLAB之间有所不同。
for
循环
for (int i = 0; i <= 1000; i+=25)
可以通过以下方式转换为MATLAB for循环:
>> for i = [0:25:1000]
# Code
end
如果您打算使用“i”作为扫描数组的索引, for i=0:25:1000
将无效。 matlab数组中第一个元素的索引是1.因此for i=1:25:1000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.