如何用标量替换向量的所有元素

时间:2017-02-13 21:33:35

标签: arrays matlab

我有一个矢量(或数组)

A = [2 3 4]

我想用标量值4替换每行的所有元素。我有代码:

for ii = 1: size(A, 1) A(ii,:) = 4 end

返回A = [4 4 4]。如何获得1x1矩阵:A = [4]而不是1x3矩阵?

非常感谢提前。

3 个答案:

答案 0 :(得分:1)

你可以用标量变量替换NxM向量/矩阵/数组,只需为其指定一个标量。

示例:

>>> A = [1,2,3]
A =
    [1 2 3]
>>> A = 4
A =
    4

如果我没记错的话,MATLAB中的标量是1x1矩阵

答案 1 :(得分:0)

谢谢你们的评论。虽然它说我应该指定一个标量,但它并没有说我怎么能有效地做到这一点。这是有效的:

A = [2 3 4; 1 3 2];

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

答案 2 :(得分:-1)

for i = 1:10
    eval(['x_' num2str(i) ' = i^2']);
end

此解决方案有两个问题:

  1. 创建标量比为矩阵赋值慢。
  2. Challeng稍后会参考新的标量。
  3. 来源

    https://www.mathworks.com/matlabcentral/answers/29712-creating-a-new-variable-in-each-iteration