Matlab 如何以红色仅显示矩阵的负值?
我在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] 我想将负值改为红色,同时保留其他值 因此,结果将是: 这
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);