Arrays 在两个矩阵之间查找值

Arrays 在两个矩阵之间查找值,arrays,matlab,image-processing,matrix,Arrays,Matlab,Image Processing,Matrix,我假设我有一个从0到255(大小2x3)的2D矩阵和一个1D矩阵(大小256x1)。其中,1D矩阵存储2D数组256个像素值的信息。例如 二维矩阵是 [0 1 2 255 2 2] 和一维矩阵 [0 0 0.1 ....0.5] 我想制作一个新的2D矩阵,在每个像素值处存储1D矩阵的信息。我们可以看到2D矩阵中的2的值为0.1,255的信息值为0.5。所以我想做一个矩阵,比如 [0 0 0.1 0.5 0.1 0.1] 如何通过MATLAB代码生成该矩阵?您需要将2D数组的元素作为索引,索

我假设我有一个从0到255(大小2x3)的2D矩阵和一个1D矩阵(大小256x1)。其中,1D矩阵存储2D数组256个像素值的信息。例如 二维矩阵是

[0 1 2
255 2 2]
和一维矩阵

[0 0 0.1 ....0.5]
我想制作一个新的2D矩阵,在每个像素值处存储1D矩阵的信息。我们可以看到2D矩阵中的2的值为0.1,255的信息值为0.5。所以我想做一个矩阵,比如

[0 0 0.1
0.5 0.1 0.1]

如何通过MATLAB代码生成该矩阵?

您需要将2D数组的元素作为索引,索引到一维数组中。现在,MATLAB的索引从1开始,在2D索引数组中有间隔
[0255]
中的值,因此需要在索引之前向它们添加
1
。因此,假设
array1D
array2D
分别作为1D和2D数组的变量名,则使用-

array1D(array2D+1)

例子 让我们假设这两个数组的一些值作为演示,好吗?让
array2D
具有从
0到5
的6个像素值(在您的情况下模拟
0到255
),并且
array1D
对于6个像素中的每个像素具有6个元素。输入和代码运行-

array2D = [
    0 1 2 ;
    5 2 2]

array1D = [105 103 107 102 108 101]

out = array1D(array2D+1)

out =
105     103     107
101     107     107
让我们来验证一下

现在,
array1D(1,1)
0
,因此
out(1,1)
必须是
array1D
的第一个元素,即
105
,是吗?见鬼,是的

类似地,
array1D(1,2)
1
,因此,
out(1,2)
必须是
array1D
的第二个元素,即
103
,是吗?对!

array1D(2,1)
5
,因此,
out(2,1)
必须是
array1D
的最后一个元素,即
101
,是吗?对!


。。。请自己检查其余的输出元素?

对不起,可能您不明白我需要什么。我需要制作一个新的2D矩阵,将值映射到1D矩阵。其中,原始二维矩阵中的值为一维矩阵的索引。例如,2是原始2D矩阵的值。我将在一维矩阵中查找索引为2的值,并将该值放入新的二维矩阵中。谢谢你的支持reply@user3051460看看这个例子@用户3051460如果术语
数组
让您感到困惑,请记住您可以将任何1D或2D或3D或4D数据表示为数组。因此,2D矩阵可以称为2D数组。非常感谢各位的帮助。这就是我想要的need@user3051460很高兴你终于明白了。