繁体   English   中英

转换'for'循环,从C到MATLAB的增量为25

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM