Why is my "plot" function not working?

7 visualizzazioni (ultimi 30 giorni)
William
William il 26 Mar 2023
Commentato: Star Strider il 26 Mar 2023
T = readtable('ELG3155_LAB3_part2_M_2V.xlsx', 'PreserveVariableNames', true);
x = T.("Time (ms)");
y = T.("Raw speed (mrad/s)");
grid on;
plot(x,y);
When i run this it says there is an error with my plot function, why?
  2 Commenti
Matt J
Matt J il 26 Mar 2023
We can't run the code (because it's an image and because the data hasn't been provided)

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 26 Mar 2023
Modificato: Star Strider il 26 Mar 2023
Use the str2double function on the last four variables.
EDIT — (26 Mar 2023 at 10:28)
T = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/1336464/ELG3155_LAB3_part2_M_2V.xlsx', 'VariableNamingRule','preserve');
VN = T.Properties.VariableNames;
x = T.("Time (ms)");
y = str2double(T.("Raw speed (mrad/s)"));
figure
plot(x,y)
xlabel(VN{1})
ylabel(VN{3})
grid on
.

Più risposte (1)

Walter Roberson
Walter Roberson il 26 Mar 2023
The first row has time 00. That is text not numeric.
Looking at the left justification it looks to me as if the second column is text rather than numeric.
  1 Commento
Walter Roberson
Walter Roberson il 26 Mar 2023
I checked in Excel itself, and sure enough, the 00 gives a warning about "Number stored as text", and all of columns 2, 3, 4 report the same thing.
If you use readmatrix() then everything will be converted to numeric.
Note: with default options, the 00 0 0 0 row will be detected as being header and will be skipped.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by