私はmatlabを始めたばかりで、どこかで立ち往生しています...例を考えてみましょう
X=(3:7)
Z=(2:6)
for (i=1:5)
y=abs(X(i)-Z);
dm=min(y);
D=find(y==min(y))
D1=Z(D);
end
D と D1 を列/行ベクトルにしたいのですが、助けてください。
私はmatlabを始めたばかりで、どこかで立ち往生しています...例を考えてみましょう
X=(3:7)
Z=(2:6)
for (i=1:5)
y=abs(X(i)-Z);
dm=min(y);
D=find(y==min(y))
D1=Z(D);
end
D と D1 を列/行ベクトルにしたいのですが、助けてください。
使用する:
if isrow(D)
D = D.'; % .' is the transpose operator
end
ところで: 括弧を頻繁に使用する必要はありません。
以下も参考になると思います。
% convert ANY array into a column vector
D = D(:);
% convert ANY array into a row vector
D1 = D1(:).';
このようにすると、パフォーマンスが低下することなく、一方が列で他方が行であることが保証されます。
行ベクトルから列ベクトルに単純に変換する場合は、コードの最後に次の行を追加するだけD
です。D1
D = D';
D1 = D1';
この'
操作は、問題の行列の転置を与えるだけです。
現在、スカラー値をD
とに格納していD1
ます。D
値を と の i 番目の列に保存したかったのではないでしょうD1
か。
X=(3:7)
Z=(2:6)
for (i=1:5)
y=abs(X(i)-Z);
dm=min(y);
D(i)=find(y==min(y));
D1(i)=Z(D(i));
end