当我运行我的脚本时,会显示所有值,但我想要vector中的所有值,那么我该怎么办?
x=[1 2 3 4 5];
y=[1 2 3 4 5];
xx=[1.2 1.6 1.8 2.4 2.8 3.4 4.9 2.6];
yy=[1.2 1.6 1.8 2.5 2.8 3.3 4.9 2.5];
plot(x,y,'.g',xx,yy,'*b')
for j=1:length(xx)
if xx(j)<x(1)
value=0
elseif xx(j) >x(1) & xx(j)<x(2)
value=1
elseif xx(j) >x(2) & xx(j)<x(3)
value=2
elseif xx(j) >x(3) & xx(j)<x(4)
value=3
elseif xx(j) >x(4) & xx(j)<x(5)
value=4
elseif xx(j) >x(5) & xx(j)<x(6)
value=5
else
value= NaN
end
end
答案 0 :(得分:1)
这是一个相对简单的答案,您需要创建一个数组来存储您的数据。我只需添加行value = zeros(1,length(xx))
。这将创建一个预先分配的0到0的数组,然后在循环(value(jj) = ##
)中覆盖该数组以保存值。
x=[1 2 3 4 5];
y=[1 2 3 4 5];
xx=[1.2 1.6 1.8 2.4 2.8 3.4 4.9 2.6];
yy=[1.2 1.6 1.8 2.5 2.8 3.3 4.9 2.5];
plot(x,y,'.g',xx,yy,'*b')
value = zeros(1,length(xx));
for jj=1:length(xx)
if xx(jj)<x(1)
value(jj)=0;
elseif xx(jj) > x(1) && xx(jj) < x(2)
value(jj)=1;
elseif xx(jj) > x(2) && xx(jj) < x(3)
value(jj)=2;
elseif xx(jj) > x(3) && xx(jj) < x(4)
value(jj)=3;
elseif xx(jj) > x(4) && xx(jj) < x(5)
value(jj)=4;
elseif xx(jj) > x(5) && xx(jj) < x(6)
value(jj)=5;
else
value(jj)= NaN;
end
end
答案 1 :(得分:0)
你需要在for循环之前创建一个数组,用这样的零初始化:
value = zeros(1,length(xx));
此向量将在循环内更新。用零初始化它将保证它不会为每次迭代分配内存。它的大小与循环的迭代次数相同,因为这是您使用的最终值。
然后,在循环内的每个值之后,写一个(j)。这将在每次迭代中将当前值保存到值向量中的当前位置;
循环后,写入值,它将值打印为矢量。