我有一个填充0和1的418x284矩阵,并希望绘制一个图形,其中点是一个位置的所有位置,x和y坐标是(0到284,0到-418)。
我该怎么做呢?
谢谢你的帮助!
答案 0 :(得分:3)
您也可以使用spy()
,但需要调整刻度标签。
假设您有以下矩阵:
A = rand(418,284)>.7;
然后:
spy(A)
调整标签:
yticks = get(gca, 'YTick');
yticks(yticks ~= 0) = -yticks(yticks ~= 0);
set(gca, 'YTickLabel', yticks)
答案 1 :(得分:1)
通过二进制矩阵设mat
。您可以使用find
:
[I,J] = find(mat)
plot(I, J);
注意在Matlab中图像和绘图的轴的约定是不同的。上面的代码假设I
是行索引(从上到下),J
是列索引(从左到右)。
一个工作示例:
mat=eye(10);
[I, J]=find(mat);
subplot(1,2,1), imshow(mat)
subplot(1,2,2), plot(I, J);
结果:
Binary image Non-zero pixels location