для цикла в Matlab - PullRequest
       0

для цикла в Matlab

1 голос
/ 29 марта 2011

Как вы получаете каждый индекс вектора внутри цикла, это чтобы передать функции значения вектора

vector =[ 20 , 30 , 60 ,45 ,26 ,17 ,28,9, 10,3 ]


n = 10
for i=1:n
    somefunt( vector(i) );
end

Так что это переводится

 somefunt( vector(20) );
 somefunt( vector(30) );
 somefunt( vector(60) );
 ...

Как это сделать?

Ответы [ 2 ]

4 голосов
/ 29 марта 2011

Если вы хотите передать все значения в vector в вашу функцию somefunt в для цикла , вы можете просто использовать vector в качестве значений цикла следующим образом:

for i = vector
  somefunt(i);
end

Это будет эквивалентно:

somefunt(20);
somefunt(30);
somefunt(60);
...
1 голос
/ 29 марта 2011

В дополнение к тому, что написал @gnovice, если вам нужен индекс элемента вектора, вы можете использовать функцию ismember:

vector =[ 20 , 30 , 60 ,45 ,26 ,17 ,28,9, 10,3 ]
for i = vector
    [TempFlag, MemberInd] = ismember( i, vector );

    fprintf('vector(%d) is %d\n', MemberInd, i);
    % somefunt( i );
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...