[討論] 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