我正在尝试在matlab中编写一些代码来处理向量中的每个元素,并且还会返回一个向量。所以基本上如果我有一个向量x = [1 2 3 4 5]';我想执行2 * x(i)* i,其中i是向量中的第i个元素。并返回y = [2 8 18 32 50]';
现在我有了代码:
N = length(x);
for i=1:N
y(i,:) = (i*2).*x(i,:);
end
我是Matlab的新手,所以我一直在做研究,尝试学习语法,让我逐个元素乘法,但这一切都很困难。我无法超越那个1:numel(x)取代了我的位置。再一次,我是matlab的新手,所以对我帮助我学习的答案的任何解释都非常感谢。谢谢!
答案 0 :(得分:2)
以下是如何操作:
y = x.*(1:numel(x))*2
原因如下:我们通常希望对向量或矩阵中的每个元素进行操作。 Matlab将允许您使用元素明智的操作执行此操作。例如,假设您希望将向量x
中的每个条目与向量y
中的相应条目相乘。换句话说,x(1)*y(1)
,x(2)*y(2)
等。为了做到这一点,应该在乘法之前使用符号.
。实际上,您可以在任何数学符号前放置一个.
来告诉Matlab您希望在向量或矩阵的每个元素上进行操作。