Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中矩阵的归一化_Matlab_Matrix_Normalize - Fatal编程技术网

matlab中矩阵的归一化

matlab中矩阵的归一化,matlab,matrix,normalize,Matlab,Matrix,Normalize,我有一个rgb图像矩阵(高度*宽度*3),用双精度表示。 在对矩阵进行一些操作后,一些值变大,然后变大,或者变小,然后变小。 我需要将这些值标准化回1和0。 谢谢。好吧,只需使用条件索引即可。假设你的矩阵叫做M。 如果只想将大于1的值设置为1,小于0的值设置为0,请使用: M(M > 1) = 1; M(M < 0) = 0; 您必须考虑矩阵M已在区间[0;1]内且不需要标准化的情况。如果您只想查看可以使用的图像 imagesc(M); 它负责范围本身 如果要手动更改值并对其进

我有一个rgb图像矩阵(高度*宽度*3),用双精度表示。 在对矩阵进行一些操作后,一些值变大,然后变大,或者变小,然后变小。 我需要将这些值标准化回1和0。
谢谢。

好吧,只需使用条件索引即可。假设你的矩阵叫做M。 如果只想将大于1的值设置为1,小于0的值设置为0,请使用:

M(M > 1) = 1;
M(M < 0) = 0;

您必须考虑矩阵M已在区间[0;1]内且不需要标准化的情况。

如果您只想查看可以使用的图像

imagesc(M); 
它负责范围本身

如果要手动更改值并对其进行完全控制

M = M ./ max(M(:));
如果你只有正值的话,你会成功的。 要获得完全对比度图像,您可能需要:

m = m - min(m(:));
m = m ./ max(m(:));

谢谢,它确实满足了我的要求。但是结果还不够好,所以我想我真的需要规范化矩阵。最大值应该是1,最小值为0,其他所有值都应该成比例地增加。对不起,我没有正确理解。我已经编辑了我的答案。希望,这就是你想要的。@Curdeius:如果你想裁剪[0,1]范围内的值(你的第一个解决方案),你也可以将它矢量化为:
M=min(max(M,0),1)
@Curdeius:也许最后一个动作应该是
(M=(M-mmin)。/(mmax mmin);
?(代替。*)
m = m - min(m(:));
m = m ./ max(m(:));