Matlab的循環與C/C++等普通計算機語言的循環還是有很大的差別的。
看下面Matlab代碼:
a=[1 2 3 4 5 6];
for i=1:6
if i==3,
i=i-1;
end
disp(a(i));
end
結果為:
1
2
3
4
5
6
将上述Matlab轉換成C++代碼:
#include <iostream>
using namespace std;
int main()
{
int a[6]={1,2,3,4,5,6};
for(int i=0;i<6;i++)
{
if(i==3)
i--;
cout<<a[i]<<endl;
}
return 0;
}
結果為始終列印3,陷入死循環。
分析:
Matlab循環是不支援修改循環變量的,修改循環變量無效,等于沒有修改。這是跟普通計算機語言最大的差別。另外,matlab的循環是包括頭尾的,而一般語言都是包括頭不包括尾,如python的循環,for i in range(5),是從0到4的,而不是從1到5。Matlab是從1開始的。