How can I extract the values from Vector Double? Index exceeds the number of array elements (0). Error in test1 (line 19) ax=m(1)
1 view (last 30 days)
Show older comments
Yamen Madamani
on 16 Jul 2020
Edited: Image Analyst
on 17 Jul 2020
I got the error message, can you please help me?
Index exceeds the number of array elements (0).
Error in test1 (line 19)
ax=m(1)
Code :
delete(instrfindall);
clear all
clc
serialPort = 'COM2';
s=serial(serialPort,'BaudRate',9600);
fopen(s);
%tic
m=[]
while 1
x=fscanf(s) ;
m=[ x];
m=str2num(m)
disp(m);
ax=m(1)
ay=m(2)
az=m(3)
end
fclose(s);
Outbut -------->
m =
[]
m =
-0.0400 0.2700 0.3900 42.8000 15.0000 -5.0000 -7.0100 1.2200
-0.0400 0.2700 0.3900 42.8000 15.0000 -5.0000 -7.0100 1.2200
ax =
-0.0400
ay =
0.2700
az =
0.3900
m =
[]
Index exceeds the number of array elements (0).
Error in test1 (line 19)
ax=m(1)
0 Comments
Accepted Answer
Walter Roberson
on 16 Jul 2020
you are in a loop reading from the serial port. At some point it sends you an empty line. You should check isempty(m) before you index into m
3 Comments
Walter Roberson
on 17 Jul 2020
delete(instrfindall);
clear all
clc
serialPort = 'COM2';
s=serial(serialPort,'BaudRate',9600);
fopen(s);
%tic
m=[];
while 1
x = fscanf(s);
m = str2num(x);
if isempty(m); continue; end
ax = m(1)
ay = m(2)
az = m(3)
end
fclose(s);
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!