In the excel sheet attached, the data is 3 different sensors 0,1 and 2(1st column), their voltage(2nd column) and time of the reading(3rd column). I'm struggling to find a way to seperate the full data set into one set of voltage readings and time readings for each sensor. This is what I have
A = xlsread('forcetest.csv');
idx1 = find(A == 0)
I used xlsread just because I think it is easier. I know I have to used the find function, this code I have so far just finds what rows are the censor 0, how to I get it to give me all those rows with the given voltage and time data? Do I have to use a for-loop?

7 comentarios

Bryce Keeler
Bryce Keeler el 4 de Jul. de 2016
Editada: Bryce Keeler el 4 de Jul. de 2016
Not entirely sure what you're asking for, but I think what you mean is you want all the data associated with the "Sensor 0" rows? In that case the the code you are looking for is
idx1 = A(find(A==0),:);
Luke Radcliff
Luke Radcliff el 4 de Jul. de 2016
yes i want all the data for sensor 0, I can just use that code to get all the data for 1 and 2
Luke Radcliff
Luke Radcliff el 4 de Jul. de 2016
this is right thank you
Bryce Keeler
Bryce Keeler el 5 de Jul. de 2016
Good to hear! Would you mind accepting it as an answer then?
Image Analyst
Image Analyst el 5 de Jul. de 2016
He could if you post it below AS and answer, instead of here as a comment.
Luke Radcliff
Luke Radcliff el 13 de Jul. de 2016
Yea I can't accept it since its a comment.
Image Analyst
Image Analyst el 13 de Jul. de 2016
Well like I said in my answer it wouldn't have worked anyway since it finds 0's anywhere, not just in column 1.

Iniciar sesión para comentar.

 Respuesta aceptada

Image Analyst
Image Analyst el 5 de Jul. de 2016

1 voto

Try this:
A = xlsread('forcetest.csv');
% Extract column 1 which has the sensor IDs.
col1 = A(:, 1);
% Find which rows have value 0, meaning this row is for sensor #0.
sensor0Rows = find(col1 == 0);
% Extract only those rows for sensor #0.
array0 = A(sensor0Rows, :);
% Get voltage and time separately, in case that's wanted.
voltages = A(sensor0Rows, 2); % From column 2
times = A(sensor0Rows, 3); % From column 3
Note that find(A==0) won't work since it finds 0's anywhere, not just in column 1. So if you had a 1 or 2 in column 1 but a 0 in column 2, then it would pick out this row even though it shouldn't.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 4 de Jul. de 2016

Comentada:

el 13 de Jul. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by