Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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_Colormap - Fatal编程技术网

Matlab 如何以红色仅显示矩阵的负值?

Matlab 如何以红色仅显示矩阵的负值?,matlab,matrix,colormap,Matlab,Matrix,Colormap,我在matlab上工作,我有一个问题: 我有一个矩阵: M1 = [5000 5000 3000 4000 11000 15000 13000 10000 6000 8000 14000 9000] 我减去这个矩阵12000: M2 = [7000 7000 9000 8000 1000 -3000 -1000 2000 6000 4000 -2000 3000] 我想将负值改为红色,同时保留其他值 因此,结果将是: 这

我在matlab上工作,我有一个问题:

我有一个矩阵:

M1 = [5000  5000  3000  4000
      11000 15000 13000 10000
      6000  8000  14000 9000]
我减去这个矩阵12000:

M2 = [7000  7000  9000  8000
      1000 -3000  -1000 2000
      6000  4000  -2000 3000]
我想将负值改为红色,同时保留其他值

因此,结果将是:

这就是我所尝试的:

M1 = [5000 5000 3000 4000;
          11000 15000 13000 10000;
          6000 8000 14000 9000];


LmB = 12000;

M2 = LmB - M1;
M2(M2 < 0) = -1;
M2(M2 > 0) = 0;


figure;
imshow(M1, [], 'InitialMagnification','fit');

figure;
imshow(M2, [], 'InitialMagnification', 'fit');

cmap = [1 0 0; 0 0 0; 0 0 0];

% Apply colormap
colormap(cmap);
M1=[5000 3000 4000;
11000 15000 13000 10000;
6000 8000 14000 9000];
LmB=12000;
M2=LmB-M1;
M2(M2<0)=-1;
M2(M2>0)=0;
图形
imshow(M1、[]、‘初始放大’、‘拟合’);
图形
imshow(M2,[],“初始放大倍数”,“配合”);
cmap=[1 0;0 0;0 0 0];
%应用颜色映射
彩色地图(cmap);
我有红色的负值,但我不知道如何保持其他值,而不改变它们为黑色


谢谢

一个解决方案:扭曲颜色贴图以适合您的数据

如果将
M2
定义为:

M2 = LmB - M1;
M2(M2 < 0) = -max(M2(:)); 
并绘制:

imshow(M2, [], 'InitialMagnification', 'fit');
% Apply colormap
colormap(cmap); 

我认为你的思路是对的。我自己,我会制作一个逻辑掩码
matrixI试图显示一个矩阵,其中一个矩阵的值为负值,另一个矩阵的值为负值,其余的为NaN,但我仍然为NaN值显示黑色,imshow是否显示NaN值下的颜色?
imshow(M2, [], 'InitialMagnification', 'fit');
% Apply colormap
colormap(cmap);