我刚开始使用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成为列/行向量。请帮助。
答案 0 :(得分:1)
如果您只想将D
和D1
从行向量转换为列向量,只需在代码末尾添加以下行:
D = D';
D1 = D1';
'
操作只是为您提供相关矩阵的转置。
答案 1 :(得分:1)
使用:
if isrow(D)
D = D.'; % .' is the transpose operator
end
BTW:你不需要经常使用括号。
答案 2 :(得分:1)
目前,您正在将标量值存储到D
和D1
中。
也许您想将值保存到D
和D1
的第i列?
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
答案 3 :(得分:1)
我认为以下内容也会有所帮助:
% convert ANY array into a column vector
D = D(:);
% convert ANY array into a row vector
D1 = D1(:).';
这样做将保证一个是列而另一行,没有任何性能损失。