Accessing Elements in Arrays
古いコメントを表示
I have an array like this:
s.x
ans = 4000
280
ans = 4272.5
282
ans = 4553.85
284.29
etc......
I would like to access the first element in each case to plot their values (4000 4272.5 4553.85).
s(1,1).x([1]) yields 4000
s(1,2).x([1]) yields 4272.5
s(1, 1:2).x([1]) gives error: a cs-list cannot be further indexed.
What is the proper syntax needed to yield an array containing the values 4000 4272.5 and 4553.85 please?
回答 (1 件)
Ameer Hamza
2020 年 12 月 2 日
編集済み: Ameer Hamza
2020 年 12 月 2 日
You can use arrayfun()
v = arrayfun(@(s_) s_.x(1), s)
Indexing of struct arrays and cell arrays can be a bit confusing in MATLAB. Check the following links
Following is another solution
v = [s.x];
v = v(1,:);
4 件のコメント
Chris Stillo
2020 年 12 月 2 日
Ameer Hamza
2020 年 12 月 2 日
I am glad to be of help! :)
In short, arrayfun is just a for-loop. Following two codes are same
v = arrayfun(@(s_) s_.x(1), s)
or
v = zeros(size(s));
for i = 1:numel(v)
v(i) = s(i).x(1);
end
Chris Stillo
2020 年 12 月 2 日
Ameer Hamza
2020 年 12 月 2 日
I am glad to be of help!
カテゴリ
ヘルプ センター および File Exchange で Operators and Elementary Operations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!