Plotting a grid of filled squares from true/false values in MATLAB
16 ビュー (過去 30 日間)
古いコメントを表示
I want to create a grid of equal squares in MATLAB. I have a matrix which stores mixed values of 1 or a 0. I want the 1's to represent black squares and the 0's to be white with a white outline encapsulating the black squares for clearness/black grid lines for white boxes.
There is no need for units or values on either axis (i'm representing some shaded/unshaded PV panels).
The pseudocode is something like:
For(x row of variable, y column of variable)
If (variablename(x,y)) value = 1
draw a black square with white outline
elseif (variablename(x,y)) value = 0
draw a white square with black outline
end
end
0 件のコメント
回答 (2 件)
Walter Roberson
2013 年 11 月 28 日
Something like this (untested)
[sx, sy] = size(YourLogicalMatrix);
rectangle([sx/2 sy/2 1/2 1/2], 'facecolor', 'b');
[x, y] = find(YourLogicalMatrix);
for K = 1 : length(x)
rectangle([x(K)-1/2, Y(K)-1/2, 1, 1], 'Linewidth', 2, 'EdgeColor', 'w');
end
4 件のコメント
Walter Roberson
2013 年 11 月 28 日
[sx, sy] = size(YourLogicalMatrix);
rectangle('Position', [sx/2 sy/2 1/2 1/2], 'facecolor', 'b');
[x, y] = find(YourLogicalMatrix);
for K = 1 : length(x)
rectangle('Position', [x(K)-1/2, y(K)-1/2, 1, 1], 'Linewidth', 2, 'EdgeColor', 'w');
end
参考
カテゴリ
Help Center および File Exchange で Line Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!