How to display graphically
2 ビュー (過去 30 日間)
表示 古いコメント
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
採用された回答
Nora Khaled
2020 年 11 月 22 日
編集済み: 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 件のコメント
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 件)
参考
カテゴリ
Find more on Graphics Object Programming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!