1

私は本当にmatlabの初心者レベルです。ここで、反復によって減少する要素の数を含むベクトル (連続した数値ではない) を反復するようなループが必要です。

たとえば、私は[1; 2 ;3; 4](人1、2、3、4と考えて)、たとえば人1と4が食べ物を手に入れ、人2と3が食べ物を残さないようにしたいと考えています。

次のラウンドでは、人物 2 と 3 (割り当てられていない人) に再度割り当てプロセスを実行してもらいたいのですが、1 と 4 はそうではないようにします。そこで、ベクトル [2;3] を作成して、食べられなかった人を追跡します。

ただし、for i=1:length(vector)一連の連続した数字が表示されます。必要なのは

for i in vector do something; end

これを実装する方法は?

私がちょうど置いたとき

i=vector,

Matlab は、インデックスが行列の次元を超えていると言います

4

3 に答える 3

5

任意のベクトルをループする場合は、そのベクトルをforループで直接使用します。例えば:

vector = [3, 4, 7, 1, 1]

for i = vector
    disp(i)
end

を出力します3 4 7 1 1。これは、「ベクトル内のiが何かを行う」と同等です。

于 2012-11-01T15:54:41.060 に答える
1

for i=1:length(vector)ベクトルへのインデックスを提供します-ベクトルのfirst..last位置を表すため、常に連続します。

ベクトルから識別子を取得したいようです。これは、既存のループ内で実行できます。id=vector[i]

于 2012-11-01T11:38:41.013 に答える
0

Matlab 構造体の使用について考えたことはありますか?

s = struct(field1,value1,...,fieldN,valueN)

ループできる構造体 (タイプ person) の配列「people」を持つことができます...

for i=1:length(people)
    if people(i).HasBeenFeed = False
        % feed this person...
    end
end
于 2012-11-01T12:15:31.953 に答える