How to plot the content of a Structure without using a for loop?

I need to plot the content of a structure fiel:
Each row in the column Position is made by 2 elements (x and y). I need to plot all the rows at once on a scatter plot.
Using:
pop(1).Position(1)
I can access the first value of the first row/column. But I would like to plot all the column values without using a for loop.
Is that possible?
Thanks in advance!

 채택된 답변

Ahmet Cecen
Ahmet Cecen 2018년 4월 6일
편집: Ahmet Cecen 2018년 4월 6일
Yes, in a way that is not apparent at first look, but very simple when you think about it:
[pop.Position]
I believe you can figure out the rest after this critical piece of information.

댓글 수: 3

It's not working...
For instance, if I use:
[pop(1).Position]
I get a 1x2 vector ([-0.4681 0.2270]) that is my (x,y) coordinates. If I plot this:
plot([pop(1).Position],'.r')
I get 2 points plotted...
If I try to plot all points at once:
plot([pop.Position(1)],[pop.Position(2)],'.r')
I get the error message:
Expected one output from a curly brace or dot indexing expression, but there were 50 results.
By the way, with your command ([pop.Position]) I get 50 answers, 1x2 each...
Its just:
[pop.Position]
Do that and check the answer. A simple reshape will solve your problem after that.
Edit: Fixed Braces.
It worked with your suggestion plus buffer function:
a = [pop.Position];
b = buffer(a,2)';
Because using just [pop.Position] a get an 1xN vector. That's why it wasn't working.
Many thanks!

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Graphics Performance에 대해 자세히 알아보기

제품

질문:

2018년 4월 6일

댓글:

2018년 4월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by