Matlab相当于Python的枚举

wdg*_*wdg 9 python matlab

在Python中,我们有一个方便的功能enumerate:

for i,item in enumerate(foo_list):
    do something
Run Code Online (Sandbox Code Playgroud)

是否有Matlab相当于enumerate

现在,我能想到的是类似以下内容(Matlab代码):

i=1;
for foo=foo_list
    ....
    i=i+1;
end
Run Code Online (Sandbox Code Playgroud)

Bas*_*els 5

据我所知,在Matlab中没有等效的枚举。最常见的方法是:

for i = 1:length(foo_list)
    item = foo_list(i);
    % do stuff with i, item
end
Run Code Online (Sandbox Code Playgroud)

  • (1)最好[不要在Matlab中使用'i'作为变量名](http://stackoverflow.com/questions/14790740/using-i-and-j-as-variables-in-matlab)。(2)万一`foo_list`不是一维的,使用`numel`而不是`length`可能更健壮... (6认同)
  • @Shai 每个人都使用“i”作为索引,无论人们建议什么,这都不会改变。如果您确实需要一个复数,最好使用“1i”而不是“i”,以避免混淆。我认为 Matlab 的一个设计错误,他们给这样一个常见的变量赋予了特殊的含义。 (2认同)