7

私は Matlab にあまり詳しくないので、このばかげた質問を前もってお詫び申し上げます。マトリックスの特定の場所に番号 1 を割り当てたいと思います。行ベクトルと対応する列ベクトルがあります。これらの場所に何度か値を割り当てようとしました。しかし、うまくいきませんでした。小さいサイズのコードの例を次に示します。4*4 行列があり、行列 (1,1)、行列 (2,3)、および行列 (3,4) を 1 に割り当てたいとします。これが私が行ったことです。

matrix = zeros(4,4);
row = [1 2 3];
col = [1 3 4];
matrix(row,col)=1;

しかし、私は答えを得ました

matrix=[ 1 0 1 1
         1 0 1 1
         1 0 1 1
         0 0 0 0]    

誰かが私がここで間違っていることを指摘できますか? 作業するマトリックスの実際のサイズは数千単位であるため、これらの位置を 1 つずつ手動で割り当てることができないのはそのためです。値 1 を割り当てる必要がある行ベクトルと列ベクトルを使用する方法はありますか? どうもありがとうございました、

4

3 に答える 3

10

を使用sub2indして、割り当てたい位置の線形インデックスを計算し、それらを割り当てに使用できます。

indices = sub2ind(size(matrix), row, col);
matrix(indices) = 1;
于 2013-04-08T06:00:41.550 に答える
1
matrix(1,1) = 1
matrix(2,3) = 1
matrix(3,4) = 1
于 2013-04-08T05:51:43.723 に答える