Plotting a grid of filled squares from true/false values in MATLAB
7 次查看(过去 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 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!