필터 지우기
필터 지우기

How to index the value returned by a Map

조회 수: 24 (최근 30일)
Bill Tubbs
Bill Tubbs 2020년 2월 4일
댓글: Bill Tubbs 2020년 3월 19일
I'm new to MATLAB so please help me out here.
I have a containers.Map that contains cell arrays. I want to get one of the cell arrays and immediately index an item from it.
I tried simply putting the curly braces after the Map's key index and got this error message:
>> stats('u_est')
ans =
1×5 cell array
{[525]} {[0.9834]} {[-0.0261]} {[-1.0166]} {[1.0009]}
>> stats('u_est'){2}
Error: Indexing with parentheses '()' must appear as the last operation of a valid indexing expression.
Obviously I can do it by assigning a new variable but I think there must be a way to do it directly:
>> values = stats('u_est');
>> values{2}
ans =
0.9834
Also, what does it mean by "Indexing with parentheses '()' must appear as the last operation of a valid indexing expression"?
thanks
  댓글 수: 2
Tobias Ohrmann
Tobias Ohrmann 2020년 3월 19일
@Bill Tubbs I have exactly the same problem, did you manage to solve it? Defining a new variable seems very laborious here..
Bill Tubbs
Bill Tubbs 2020년 3월 19일
No. As far as I know, this kind of 'chained expression evaluation' is an inherent non-feature of MATLAB. The only solution I know is to switch to another language such as Python that parses all the sub-components of an expression with a consistent set of rules and can thus handle compound operations on any objects of valid type.

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

답변 (1개)

KSSV
KSSV 2020년 2월 4일
YOu have to use
u_est = values{2} ;
For arrays the indexing is done using (), for cells indexing is done using {}.
  댓글 수: 4
Bill Tubbs
Bill Tubbs 2020년 2월 4일
Thanks but I am asking if it is possible to get a cell array from a Map and immediately index an item from it. Or is this impossible to do in one statement? If you look at the second code segment it shows that I know how to do it in two steps. The question is can I do it in one? Like this:
stats('u_est'){2}
Bill Tubbs
Bill Tubbs 2020년 2월 4일
편집: Bill Tubbs 2020년 2월 4일
Basically I'm trying to do this in MATLAB:
>>> stats = {'u_est': [525, 0.9834, -0.010]}
>>> stats['u_est'][1]
0.9834

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

카테고리

Help CenterFile Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by