我刚开始使用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 成为列/行向量。请帮忙。
如果您希望简单地将行向量转换D
为D1
列向量,则只需在代码末尾添加以下行:
D = D';
D1 = D1';
该'
操作只是为您提供相关矩阵的转置。
采用:
if isrow(D)
D = D.'; % .' is the transpose operator
end
顺便说一句:您不需要经常使用括号。
当前,您将标量值存储到D
andD1
中。D
也许您想将值保存到and的第 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
我认为以下内容也会有所帮助:
% convert ANY array into a column vector
D = D(:);
% convert ANY array into a row vector
D1 = D1(:).';
这样做将保证一个是列和另一行,而不会造成任何性能损失。