I am receiving this error : Subscripting a table using linear indexing (one subscript) or multidimensional indexing (three or more subscripts) is not supported.
4 ビュー (過去 30 日間)
古いコメントを表示
When i try to run this code I'm receiving this error:
Subscripting a table using linear indexing (one subscript) or multidimensional indexing (three or more
subscripts) is not supported. Use a row subscript and a variable subscript.
a(1:11) %Imported data from excel
b(1:11) %Imported data from excel
c(1:11) %Imported data from excel
Resultant = sqrt(a*a + b*b + c*c);
Up = 180*atan2(a, sqrt(b*b + c*c))/pi;
Right = 180*atan2(b, sqrt(a*a + c*c))/pi;
while (0 < n < 11)
if (0 < Up || Right > 30)
disp('Fall is detected')
else
disp('No fall')
end
end
2 件のコメント
Dyuman Joshi
2022 年 8 月 23 日
The code you have showed us is incomplete
- There are no a, b anc c values defined/assigned.
- You have not initiated a loop counter nor is the loop counter updating according to conditions.
採用された回答
Dyuman Joshi
2022 年 8 月 23 日
編集済み: Dyuman Joshi
2022 年 8 月 23 日
a = readmatrix('a.xlsx');
b = readmatrix('b.xlsx');
c = readmatrix('c.xlsx');
%I have not suppressed the outcome so you can verify the values of a
%as the first value will be read as NaN (not a number)
a = a(2:11) %Imported data from excel
b = b(2:11); %Imported data from excel
c = c(2:11); %Imported data from excel
Resultant = sqrt(a.*a + b.*b + c.*c);
Up = 180*atan2(a, sqrt(b.*b + c.*c))/pi
Right = 180*atan2(b, sqrt(a.*a + c.*c))/pi
%since there are 10 elements in the arrays, the index should go from 1-10
n = 1;
while (n < 11)
if (0 < Up(n) | Right(n) > 30)
disp('Fall is detected')
break %breaking the loop
else
disp('No fall')
end
n = n+1;
end
8 件のコメント
Dyuman Joshi
2022 年 8 月 25 日
That should not be happening, if x>30 then it is automatically x>0
Is your data still the same?
その他の回答 (1 件)
Abderrahim. B
2022 年 8 月 23 日
Hi!
We don't import data from excel that way.
In your case better to use readmatrix:
A = readmatrix(yourFile.xlsx) ;
If you want to have the data as table use readtable:
tbl = readtable(yourFile.xlsx) ;
Hope this helps
5 件のコメント
Dyuman Joshi
2022 年 8 月 23 日
編集済み: Dyuman Joshi
2022 年 8 月 23 日
Since you are looking to compare individual values, make this change
%replace
if (0 < Up | Right > 30)
%with
if (0 < Up(n) | Right(n) > 30)
and adjust the loop counter accordingly.
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!