如何用单个值替换向量的所有元素?

时间:2017-02-23 03:55:08

标签: arrays matlab

请允许我使用以下示例: How do i replace all elements of a vector with a scalar

说:

我有一个矢量(或数组)

A = [2 3 4; 1 3 2]

我想用最后一个元素替换每一行的所有元素。下面的代码按照OP的建议工作。

for ii = 1: size(A, 1)
  B(ii,:) = A(ii,3)  
end

返回:B = [4; 2]。但是,在我的情况下,我想检索结果,使原始变量A(而不是B)返回为A = [4; 2]。我尝试将 B 复制回 A ,但它为我提供了原始数组A而非预期结果。

1 个答案:

答案 0 :(得分:0)

您应该能够在循环

之后将B分配给A
for ii = 1:size(A, 1)
    B(ii, :) = A(ii, end);
end

A = B;

或者您可以将循环全部移除,然后抓住A

的最后一列
A = A(:, end);

如果您要替换A每行的所有元素,而您可以使用每行的最后一列中的值:

A = A(:, repmat(end, [1, size(A, 2)]));