如何在Matlab中迭代列向量?

如何在Matlab中迭代列向量?,matlab,iteration,Matlab,Iteration,可能重复: 我有一个列向量列表,我想这样迭代: for elm in list //do something with elm 如何操作?在Matlab中,您可以直接迭代列表中的元素。如果您不需要知道当前正在处理哪个元素,这将非常有用 这样你就可以写作了 for elm = list %# do something with the element end 请注意,Matlab会遍历list的列,因此如果list是nx1向量,则可能需要对其进行转置。在Matlab中,可以直接遍历列表

可能重复:

我有一个列向量
列表
,我想这样迭代:

for elm in list
   //do something with elm

如何操作?

在Matlab中,您可以直接迭代列表中的元素。如果您不需要知道当前正在处理哪个元素,这将非常有用

这样你就可以写作了

for elm = list
%# do something with the element
end

请注意,Matlab会遍历
list
的列,因此如果
list
是nx1向量,则可能需要对其进行转置。

在Matlab中,可以直接遍历列表中的元素。如果您不需要知道当前正在处理哪个元素,这将非常有用

这样你就可以写作了

for elm = list
%# do something with the element
end

请注意,Matlab会遍历
list
的列,因此如果
list
是一个nx1向量,则可能需要对其进行转置。

由于Matlab中有许多函数,因此根本不需要迭代

例如,要乘以它在列表中的位置:

m = [1:numel(list)]';
elm = list.*m;

matlab中的矢量化算法通常要快得多

matlab中有很多函数,您根本不需要迭代

例如,要乘以它在列表中的位置:

m = [1:numel(list)]';
elm = list.*m;

matlab中的矢量化算法通常要快得多

如果您只想对每个元素应用一个函数并将结果放入输出数组中,可以使用


正如其他人所指出的,对于大多数操作,最好避免在MATLAB和中使用循环。

如果您只想对每个元素应用一个函数并将结果放入输出数组中,可以使用


正如其他人所指出的,对于大多数操作,最好避免在MATLAB中出现循环。

我还会让你知道,用谷歌搜索术语“迭代矩阵MATLAB”会返回stackoverflow作为数字2的结果。我还会让你知道,用谷歌搜索术语“迭代矩阵MATLAB”返回stackoverflow作为第2个结果。如果要更改包含元素的值,也不太好。如果不知道列表是列还是行向量,可以使用相当难看的组合
(:)'
for elm=list(:)';%;结束
。组合
(:)'
也将从矩阵中创建行向量,因此请小心处理。您的意思是
(:)。
对吗?否则,您将使用复数共轭运算符而不是转置运算符。@SembeiNorimaki:如果您知道您的数据不包含复数,
(:)“
将很好地工作-尽管使用
(:)可能是一种很好的做法“
不管怎样。如果要更改包含元素的值也不太好。如果不知道列表是列向量还是行向量,可以对elm=list(:);%…;使用相当难看的组合
(:)”
;结束
。组合
(:)'
也将从矩阵中创建行向量,因此请小心处理。您的意思是
(:)。
对吗?否则,您将使用复数共轭运算符而不是转置运算符。@SembeiNorimaki:如果您知道您的数据不包含复数,
(:)'
将很好地工作-尽管使用
(:)。
可能是一种很好的做法。