2

我刚开始使用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 成为列/行向量。请帮忙。

4

4 回答 4

1

如果您希望简单地将行向量转换DD1列向量,则只需在代码末尾添加以下行:

D = D';
D1 = D1';

'操作只是为您提供相关矩阵的转置。

于 2013-09-05T08:11:02.683 回答
1

采用:

if isrow(D)
    D = D.'; % .' is the transpose operator
end

顺便说一句:您不需要经常使用括号。

于 2013-09-05T08:12:34.247 回答
1

当前,您将标量值存储到DandD1中。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
于 2013-09-05T08:14:47.490 回答
1

我认为以下内容也会有所帮助:

% convert ANY array into a column vector
D = D(:);

% convert ANY array into a row vector
D1 = D1(:).';

这样做将保证一个是列和另一行,而不会造成任何性能损失。

于 2013-09-05T08:28:41.237 回答