尝试从第一个元素中减去列向量中的每个元素,并在列向量中生成结果

时间:2014-09-06 21:00:05

标签: matlab subtraction

我正在尝试使用循环从同一列向量中的第一个元素中减去列向量的元素。

所以我要说x = [2;3;4;5;6;7;8]作为列向量。我希望从2,然后3,从2中减去4。 .....等等到最后,2来自8

结果应该是一个向量,让我们说y,其中y[1;2;3;4;5;6]

我的代码是

x=[2;3;4;5;6;7;8;9];

for k = 1:length(x);
    x(k)=2-x(k);
end

显然不起作用。

请帮助,对于matlab来说还是个新手

2 个答案:

答案 0 :(得分:1)

你不需要循环尝试:

y = x(2:end) - x(1)

但如果你想看看如何用循环(在Matlab中没有意义,但对于学习编码很有用),那么它就像这样:

for k = 2:length(x)
     y(k-1) = x(k) - 2;
end

但同样最好用2替换该循环中的x(1)以使您的代码更通用

答案 1 :(得分:0)

根据您给出的新列向量的示例,总是比原始列少一个元素。 (原谅我,我不知道这是否是正确的matlab语法但是) 试试这个:

X = [2; 3; 4; 5; 6; 7; 8; 9];
newColumnVectorIndex = 1
对于k = 2:长度(x);
newColumnVector(newColumnVectorIndex)= x(k) - x(1)
newColumnVectorIndex = newColumnVectorIndex + 1
结束

希望这会有所帮助。