classify data from csv fil

3 次查看(过去 30 天)
hello everyone
I want to read data from csv file and classify these data. my csv look like this:
0
0.139999945
0.209999918
12.86283386
0
-0.649996554
-2.609774285
-114.4151
...
its [154*1][row*col], I want to classify these data as
  • (if data = 0 then write 0 in the second column)
  • (if 0<data<=45 then print 1)
  • (if 45<data<=90 then print 2)
  • (if 0>data>=-45 then print 3)
  • (if -45>data>=-90 then print 4)
I don't know what should I write in the condition statement! the following is my attempt but it doesn't give the desired output.
M = csvread('imu.csv')
[rows cols] = size(M);
for k = 1:length(M)
if M == 0
A=0;
elseif 0<M<=45
A=1;
elseif 45<M<=90
A=2;
elseif 0>M>=-45
A=3;
else
A=4;
end
end
csvwrite('imu2.csv',A);
  1 个评论
Image Analyst
Image Analyst 2018-5-11
编辑:Image Analyst 2018-5-11
"write 0 in the second column" of what , A or M? If A, then what is in the first column of A?

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2018-5-11
The loop and if block are not necessary.
I would simply do this:
M = randn(10, 1); % Create Vector
M = [M zeros(size(M))]; % Preallocate
M(M(:,1) > 0,2) = 1;
M(M(:,1) < 0,2) = 2;
That initially creates the second column as zeros, then sets the second column according to the positive and negative values in the first column.
  4 个评论
Khadija Al Jabri
Khadija Al Jabri 2018-5-11
it's work!
Thank you so much, I appreciate your help.
Star Strider
Star Strider 2018-5-11
As always, my pleasure!

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by