Error using plot Invalid subscript for Y.

조회 수: 71 (최근 30일)
Utsav Lakhlani
Utsav Lakhlani 2022년 5월 9일
댓글: Utsav Lakhlani 2022년 5월 11일
I imported data using import data funtion and want plot FO2_Odometer vs 1st sensor ,I keep getting this error please help me
  댓글 수: 4
Rik
Rik 2022년 5월 9일
Casting to double might be enough. If you had posted your code as code instead of a screenshot I would have done that for you.
Utsav Lakhlani
Utsav Lakhlani 2022년 5월 9일
%% Import data from text file
% Script for importing data from the following text file:
%
% filename: C:\Users\utsav\OneDrive\Desktop\TIP\Data_set0.csv
%
% Auto-generated by MATLAB on 09-May-2022 15:48:25
%% Set up the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables", 43);
% Specify range and delimiter
opts.DataLines = [3, Inf];
opts.Delimiter = ",";
% Specify column names and types
opts.VariableNames = ["Date", "Time", "Odometer1", "Odometer2", "speed1", "speed2", "impulse", "AccX", "AccY", "AccZ", "PT100", "sys_temp", "DP", "Pressure", "Pitch", "Roll", "FO2_Odometer", "FO2_Speed", "status", "Caliper1", "Caliper2", "Caliper3", "Caliper4", "Caliper5", "Caliper6", "Caliper7", "Caliper8", "Caliper9", "Caliper10", "Caliper11", "Caliper12", "Caliper13", "Caliper14", "Caliper15", "Caliper16", "ID1", "ID2", "ID3", "ID4", "ID5", "ID6", "ID7", "ID8"];
opts.VariableTypes = ["datetime", "datetime", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double"];
% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
% Specify variable properties
opts = setvaropts(opts, "Date", "InputFormat", "dd/MM/yyyy");
opts = setvaropts(opts, "Time", "InputFormat", "HH:mm:ss");
opts = setvaropts(opts, "status", "TrimNonNumeric", true);
opts = setvaropts(opts, "status", "ThousandsSeparator", ",");
% Import the data
Dataset0 = readtable("C:\Users\utsav\OneDrive\Desktop\TIP\Data_set0.csv", opts);
%% Clear temporary variables
clear opts
sensors = Dataset0(:,20:35);
FO2_Odometer = Dataset0(:,17);
plot(FO2_Odometer,sensors(:,1))

댓글을 달려면 로그인하십시오.

채택된 답변

Rik
Rik 2022년 5월 9일
Let's generate some data and try my suggestion of casting to double:
%generate data
FO2_Odometer=rand(10,1);Caliper1=rand(10,1);Caliper2=rand(10,1);Caliper3=rand(10,1);
Dataset0=table(FO2_Odometer,Caliper1, Caliper2, Caliper3)
Dataset0 = 10×4 table
FO2_Odometer Caliper1 Caliper2 Caliper3 ____________ ________ ________ ________ 0.69186 0.51453 0.51247 0.87264 0.87827 0.78237 0.81322 0.30298 0.24861 0.70964 0.65119 0.58141 0.032346 0.096039 0.11605 0.40892 0.27076 0.014997 0.003108 0.75369 0.067883 0.45315 0.18844 0.39127 0.49965 0.77489 0.74358 0.78742 0.52503 0.93181 0.83883 0.68599 0.82869 0.99609 0.031551 0.20222 0.62017 0.69801 0.79995 0.20609
% extract the data and try casting to double
sensors = Dataset0(:,2:4);
FO2_Odometer = Dataset0(:,1);
try
double(FO2_Odometer)
catch ME,fprintf('Error using tabular/double\n%s\n',ME.message),end
Error using tabular/double Undefined function 'double' for input arguments of type 'table'. To convert to numeric, use the TABLE2ARRAY function, or extract data using dot or brace subscripting.
Oops. An error. Luckily, it provides a suggestion to extract the data.
Since the error message suggests this, let's try it:
FO2_Odometer=table2array(FO2_Odometer);
sensors=table2array(sensors);
plot(FO2_Odometer,sensors(:,1),'*')

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB Coder에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by