Hello
I want the conditions of an issue to be graphically displayed at each step of the program. For example, in the case of a River crossing puzzle, I want to show which people (variables) are on which side of the river at each step.
Thanks

2 件のコメント

KSSV
KSSV 2020 年 11 月 22 日
What data you have? You can display that using plot with some markers color depending on people are on which side.
lech king
lech king 2020 年 11 月 22 日
In this case we have eight people
I considered each side an 1*8 representation
We move people according to the input received from the user
For example, if the first 2 people go from left to right, the situation will be left
001111111
The position will be on the right
11000000
How can I graphically show this situation now?

サインインしてコメントする。

 採用された回答

Nora Khaled
Nora Khaled 2020 年 11 月 22 日
編集済み: Nora Khaled 2020 年 11 月 22 日

1 投票

not sure this is what you had in mind ...
%Environment
envSize=4;
figure;
x=-envSize:0.1:envSize;
y=.5*sin(x);
plot(y,x,'lineWidth',10)
axis([-envSize envSize -envSize envSize]);
hold on;
%Input
left=[0 0 1 1 1 1 1];
right= [1 1 0 0 0 0 0 0];
% number of ppl
nL=sum(left);
nR=sum(right);
%random position for ppl
maxX=envSize-1;
minX=2*max(y);
maxY=envSize-1;
minY=-(envSize-1);
pL = [-(minX + (maxX-minX) .* rand(nL,1)), (minY + (maxY-minY) .* rand(nL,1))]
pR = [(minX + (maxX-minX) .* rand(nR,1)) , (minY + (maxY-minY) .* rand(nR,1))]
% plot
scatter(pL(:,1),pL(:,2),'filled','SizeData',200)
alpha(.5)
scatter(pR(:,1),pR(:,2),'filled','SizeData',200)
alpha(.5)
the output looks like this

9 件のコメント

lech king
lech king 2020 年 11 月 23 日
Thank you Thank you
This is exactly it
Thank you very much
lech king
lech king 2020 年 11 月 23 日
Is it possible for each point to have a specific color ??
Nora Khaled
Nora Khaled 2020 年 11 月 23 日
you could plot them in a loop like
for i=1:1:nL
scatter(pL(i,1),pL(i,2),'filled','SizeData',200)
alpha(.5)
end
for i=1:1:nR
scatter(pR(i,1),pR(i,2),'filled','SizeData',200)
alpha(.5)
end
in this case you will not need the alpha(.5) to change the transparency.
lech king
lech king 2020 年 11 月 23 日
Thank you very much
Nora Khaled
Nora Khaled 2020 年 11 月 23 日
you're welcome
lech king
lech king 2020 年 11 月 23 日
編集済み: lech king 2020 年 11 月 23 日
Thank you for your help
In this case, each point indicates an independent person. Is it possible that each person has a unique shape ??
For example, the first person is a triangle and the second person is a square and .......
Nora Khaled
Nora Khaled 2020 年 11 月 23 日
Yes
shapes=['o' '+' 's' 'd' '.' '>' 'x' '*' '^'];
for i=1:1:nL
scatter(pL(i,1),pL(i,2),shapes(i),'SizeData',200)
alpha(.5)
end
for i=1:1:nR
scatter(pR(i,1),pR(i,2),shapes(i+nL),'SizeData',200)
alpha(.5)
end
However, in this case you can not use the property filled.
you can see all shapes avalible here:
lech king
lech king 2020 年 11 月 23 日
That's it
Thank you very much for your kindness
Nora Khaled
Nora Khaled 2020 年 11 月 23 日
Sorry, I just realized... this just control the shape of the plot but does not mean that if a circle person moved from the left to the right that person will remain a circle.
If you want to assosiated the shape with the person... try this
shapes=['o' '+' 's' 'd' '.' '>' 'x' '*' '^'];
leftcounter=1;
rightcounter=1;
for i=1:1:nL+nR
if left(i) ==1
scatter(pL(leftcounter,1),pL(leftcounter,2),shapes(i),'SizeData',200)
alpha(.5)
leftcounter=leftcounter+1;
else
scatter(pR(rightcounter,1),pR(rightcounter,2),shapes(i),'SizeData',200)
alpha(.5)
rightcounter=rightcounter+1;
end
end
hope it helps.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeGraphics Objects についてさらに検索

製品

リリース

R2020b

タグ

質問済み:

2020 年 11 月 22 日

コメント済み:

2020 年 11 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by