[讨论] matlab for loop取vector

楼主: amateuruser (U文心得大师)   2018-08-23 14:22:49
我目前已经取完4*16的 matrix
目前想利用for loop 取其中一个column 的四个数值再利用plot绘制曲线图
想请教一下大大们 因为如上一篇说明 我每个传感器会有四笔资料 我想取我reshape之后的档案(data_new)
data_sensor1 = data_new(1:4,1);
data_sensor2 = data_new(1:4,2);
data_sensor3 = data_new(1:4,3);
data_sensor4 = data_new(1:4,4);
data_sensor5 = data_new(1:4,5);
data_sensor6 = data_new(1:4,6);
data_sensor7 = data_new(1:4,7);
data_sensor8 = data_new(1:4,8);
data_sensor9 = data_new(1:4,9);
data_sensor10 = data_new(1:4,10);
data_sensor11 = data_new(1:4,11);
data_sensor12 = data_new(1:4,12);
data_sensor13 = data_new(1:4,13);
data_sensor14 = data_new(1:4,14);
data_sensor15 = data_new(1:4,15);
data_sensor16 = data_new(1:4,16);
但是问题来了
我loop 一直呈现大小不同 要求要取一样大小无法解决
Code如下
data=xlsread('1.csv');
data_new=reshape(data,[4,16]);
xlswrite('output_1.csv',data_new);
data_avg=mean(data_new);
xlswrite('output_avg.csv',data_avg);
data_avg_1000=data_avg*(1/1000);
xlswrite('output_avg_1000.csv',data_avg_1000);
%data_sensor1=data_new(1:4,1);
a=1;
for i = 1:1:16
for j = 1:1:4
a=a+1;
data_sensor(j:a)=data_new(1:i ,j);
end
end
谢谢
作者: shuncheng (shuncheng)   2018-08-23 15:09:00
你在for循环里面都叫做data_sensor 没有改变我自己目前实现这种想法都是利用 eval 你可以试看看for i=1:16 data_sensor(:,i) = data_new(:,i); end我搞不懂问题惹 打完才发现两个变量是一样的 晕
作者: sppmg (sppmg)   2018-08-23 19:26:00
当然出错啦!你的j:a一定超出4个啊!要取 n column 用 d(:,n) 即可plot 好像支援矩阵 plot(x,y),x=size(y,1)plot(x,y(:,[1,3,5])),画1,3,5 column
作者: profyang (prof)   2018-08-23 19:57:00
你到底想画什么?没看到你用plot啊?感觉不需要2个for循环
作者: dati (水脑)   2018-08-24 14:41:00
首先你要先确定你要画几张图,看你的文字应该是4笔资料一张然后画16张,然后plot(x,y) x和y可以是一个向量

Links booklink

Contact Us: admin [ a t ] ucptt.com