0

我正在尝试在 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) 代替我的 i。同样,我是 matlab 的新手,因此非常感谢对有助于我学习的答案的任何解释。谢谢!

4

1 回答 1

2

这是如何做到的:

y = x.*(1:numel(x))*2

原因如下:通常我们希望对向量或矩阵中的每个元素进行操作。Matlab 将允许您通过元素操作来做到这一点。例如,假设您要将 vector 中的每个条目x与其对应的 vector条目相乘y。换句话说x(1)*y(1),,,x(2)*y(2)等等。为了做到这一点,应该.在乘法之前使用符号。事实上,您可以.在任何数学符号前面加上一个,告诉 Matlab 您希望对向量或矩阵的每个元素进行运算。

于 2013-10-16T03:56:34.750 回答