我有一个载体(或阵列)如何更换一个向量的所有元素与标量
A = [2 3 4]
我想和为4的标量值我不得不更换的每一行中的所有元素验证码:
for ii = 1: size(A, 1) A(ii,:) = 4 end
这将返回A = [4 4 4]
。我如何获得1x1
矩阵:A = [4]
而不是1x3
矩阵?
非常感谢提前。
我有一个载体(或阵列)如何更换一个向量的所有元素与标量
A = [2 3 4]
我想和为4的标量值我不得不更换的每一行中的所有元素验证码:
for ii = 1: size(A, 1) A(ii,:) = 4 end
这将返回A = [4 4 4]
。我如何获得1x1
矩阵:A = [4]
而不是1x3
矩阵?
非常感谢提前。
谢谢你们的意见。尽管它说我应该分配一个标量,但并没有说我如何能够有效地做到这一点。这是什么工作:
A = [2 3 4; 1 3 2];
for ii = 1: size(A, 1)
B(ii,:) = A(ii,3)
end
您可以用一个标量变量替换NxM向量/矩阵/数组,只需给它分配一个标量即可。
例子:
>>> A = [1,2,3]
A =
[1 2 3]
>>> A = 4
A =
4
如果我记得没错,在MATLAB标量为1x1矩阵
谢谢@sharifi。这是行不通的,因为我需要结果在循环内进行进一步的计算,在这种情况下,'A'的值在每次迭代之后可能会改变。我希望这是有道理的? – User1772
@ User1772是的,我想我明白了。假设您用'A'代替'A'的值是1x3矩阵'A'中的最后一个值是否安全? – robotHamster
是的,它是安全的。这是因为会有一些'IF'语句通过分配第一,第二或最后一个元素来取代A.谢谢! – User1772
for i = 1:10
eval(['x_' num2str(i) ' = i^2']);
end
该解决方案有2个问题:
来源
https://www.mathworks.com/matlabcentral/answers/29712-creating-a-new-variable-in-each-iteration
为什么不只是创建一个标量的新变量? – Aaron
谢谢@Aaron。请参阅下面关于此的评论。 – User1772
我不明白为什么亚伦的建议不起作用。只需分配一个标量。 – rayryeng