0

次のサイズの行列が 2 つあるとします。

matrix_1 = 30090x2

matrix_2 = 170x177

ここでrowsnの数matrix_1は の数を表すものとしpixelsます。matrix_2のサイズがピクセル数に等しいことがわかります。

私がやろうとしているのはmap、ピクセルをピクセルにmatrix_1変換するmatrix_2ことです。たとえば、次のようになります。

matrix_1(1) = matrix_2(1)
matrix_1(2) = matrix_2(2)
matrix_1(3) = matrix_2(3)
......
......
matrix_1(n) = matrix_2(n)

どうすればそれを行うことができmatlabますか?

4

2 に答える 2

1

ここにオプションがあります

  matrix_1 = matrix_2(:);

の要素 (すべて) を 1 つの長い列にコピーmatrix_2ます

2つの列があると言ったデータでmatrix_1は、たとえば、次のようにして空の列をさらに追加できます

  matrix_1  = [matrix_1 zeros(size(matrix_1))];
于 2013-05-20T15:14:20.520 に答える
1

高速な方法は、最初に次のコマンドを使用して両方の行列を列ベクトルに変換することです: matrix_1=matrix_1(:); マトリックス2=マトリックス2(:);

また、両方のマトリックスが同じサイズになったため、必要な操作を実行できます。

マトリックスを元のスケールに復元する必要がある場合は、reshape コマンド matrix_1=reshape(matrix_1, 30090,2) を使用して実行できます。

次のリファレンスを参照してください: http://www.mathworks.com/help/matlab/ref/reshape.html

于 2013-05-20T15:14:21.783 に答える