Arrays 在两个矩阵之间查找值
我假设我有一个从0到255(大小2x3)的2D矩阵和一个1D矩阵(大小256x1)。其中,1D矩阵存储2D数组256个像素值的信息。例如 二维矩阵是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 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很高兴你终于明白了。