1

for ループ コードを作成しましたが、ループを使用せずに、より簡潔な方法で記述したいのですforが、代わりに行列条件を使用します。私は独学で matlab を教えています。フィードバックをいただければ幸いです。

新しい行列を作成したいのですが、最初の列はで、2 番目の列は、インデックス行列にインデックスが含まれているyを除いてゼロで埋められています。y後者の場合、0 の代わりに 1 を追加します。

ありがとう。

y=[1;2;3;4;5;6;7];
indices=[1;3;5];
[m,n]=size(y);
tem=zeros(m,1);

data=[y,tem];

[r,c]=size(indices);
for i=1:r
  a=indices(i);
  data(a,2 )=1;
end

Output: 
data =

 1     1
 2     0
 3     1
 4     0
 5     1
 6     0
 7     0
4

2 に答える 2

1

どうですか

data = zeros( m, 2 );
data(:,1) = y;
data( indices, 2 ) = 1;
于 2013-05-19T05:37:10.557 に答える