如何绘制/绘制多个矩阵

时间:2013-07-21 05:55:50

标签: image matlab graph matrix draw

您好我正在尝试绘制图像。

我有三个矩阵:

矩阵A: X坐标

矩阵B: Y坐标

矩阵C: 图像灰度

例如:

A = [1, 1;     B = [1, 2;       C = [1, 2;
     2, 2]          1, 2]            3, 4]

我将在X(1),Y(1)处绘制一个值为C(1)的点。 值1绘制在(1,1) 值2绘制在(1,2) 值3绘制在(2,1) 值4绘制在(2,2)

是否有可用于绘制此功能的功能,还是我必须实现此功能?任何建议如何实现这一点将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

是完整图像吗? A,B和C是1D,对吗?如果是这样,您可以在相应的索引处创建具有Matrix C值的2D数组,将其转换为图像并显示图像。

img = zeros(max(max(B)),max(max(A)));   %initialize the new matrix
for i = 1:numel(C)                      %for each element in C
        img(B(i),A(i)) = C(i);          %fill the matrix one element at a time
end
img = mat2gray(img);                    %optional. More information in edit
imshow(img);                            %display the image

这假设最小索引值为1.如果它为0,则必须为所有索引添加1。

我的matlab有点生疏,但应该可以。

编辑:有什么理由说它们是二维数组才能启动?无论如何,我在两种情况下都更新了我的答案。

edit2:mat2gray会将您的值缩放到0和1之间。如果您的值已经是灰度,那么这是不必要的。如果您的值范围是另一个刻度但不一定包含最小值和最大值,则可以指定最小值和最大值。例如,如果您的范围是0到255,请使用mat2gray(img,[0,255]);