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 (최근 30일)
이전 댓글 표시
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
채택된 답변
Walter Roberson
2020년 7월 16일
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
Walter Roberson
2020년 7월 17일
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);
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!