2007年10月22日星期一

Matlab里面使用元素循环

Matlab里面的for循环其实本质上更类似于Perl和Ruby

不过由于大部分用matlab的人是受的C语言教育,甚至没有编程基础,所以一般来说,对for的实用几乎全是最基本的C方式

基本就是把

for(i=n;i<m;i++){
...
}

替换成

for i=n:m-1
...
end


稍微复杂一点,也无非就是i=m:-1:n或者i=1:k:n这类的东西。但是归根到底都是完全的C风格---可以在C下面找到简单的对应语句

但是如果认真的分析一下matlab的for语句结构

for i=1:n
~~~这个写法如果单独拿出来看是不是很眼熟-----这其实是一个数组。

换句话说,matlab其实和perl一样,是在对“数组元素”进行循环,而不是C那样简单的对数字进行循环。只不过是一般习惯上我们喜欢用1:n这样的简单的全部由数字组成的数组作为循环对象,以使其产生和C下面完全一样的效果。

But that's not necessarily the case, 如果去掉这个限制,matlab的循环功能可以实现更自由的功能,下面只是一些非常简单的小实验,至于什么地方能用的上,相信看过以后你自然会有感觉


A=[1 3 ;4 2]
for i=A
i
end
A={'First','Second'}
for i=A
i
end
A='T NN'
for i=A
i
end

A =

1 3
4 2


i =

1
4


i =

3
2


A =

'First' 'Second'


i =

'First'


i =

'Second'


A =

T NN


i =

T


i =




i =

N


i =

N

0 comments: