# How to display graphically

1 回表示 (過去 30 日間)
lech king 2020 年 11 月 22 日
コメント済み: Nora Khaled 2020 年 11 月 23 日
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 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 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 2020 年 11 月 22 日

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 件のコメント7 件の古いコメントを表示7 件の古いコメントを非表示
lech king 2020 年 11 月 23 日
That's it
Thank you very much for your kindness
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.

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

### カテゴリ

Help Center および File ExchangeLighting, Transparency, and Shading についてさらに検索

R2020b

### Community Treasure Hunt

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

Start Hunting!

Translated by