0

こんにちは私は次の状況にあります

      h = [0,1,1,1;
           0,0,0,0;
           1,1,1,1];

0からhの行サイズ(この場合は2)の範囲の着信値をチェックします。だから私のオプションは0、1、2です。

ここで、次のように1次元配列(jという名前を付けましょう)を作成します。

着信値が0のときはいつでも

j = [0,1,1,1]

次回、入力値が1の場合

次にj=[0,1,1,1,0,0,0,0]

など...matlabでこれをどのように達成することができますか?ありがとう!

4

3 に答える 3

1

これを試してください(x入力値のベクトルとして):

j = reshape(h(x+1,:).',1,[]);

上記はx+1、行のコピーを選択するためのインデックスとして使用し、結果を単一の行ベクトルに転置および再形成します。テストは次のとおりです。

>> h = [0 1 1 1; 0 0 0 0; 1 1 1 1];
>> x = [0 0 0];
>> j = reshape(h(x+1,:).',1,[])

j =

     0     1     1     1     0     1     1     1     0     1     1     1
于 2010-01-26T18:43:01.880 に答える
1

ご存知のように、Matlabは1からインデックスを作成するため、hの行識別子を取得するにはインデックス0,1,2に1を追加する必要があります。したがって、入力が「インデックス」の場合

j = h(index+1,:)

次に、次のインデックスのために

j = [j h(index+1,:)]

等々。

于 2010-01-26T18:00:01.847 に答える
0

入力値がxの場合、次のように実行できます。

g = h.'
j = g(1:(x+1)*size(h,2))
于 2010-01-26T17:58:01.617 に答える