在Matlab中使用“spy”将较大的权重转换为较小的值?

在Matlab中使用“spy”将较大的权重转换为较小的值?,matlab,sparse-matrix,spy,Matlab,Sparse Matrix,Spy,我对MatLab是新手,我有一个包含几百个变量的表格。我知道表中较小的变量比较大的变量具有更大的意义,我希望稀疏矩阵I图能够说明这一点。与其说lim接近0,不如说lim接近1,因为我知道最重要的值都接近1。我是不是只取矩阵的倒数?注意,spy是一种可视化矩阵稀疏模式的方法,但不允许您可视化值。因此,imagesc是一个很好的候选者 了解更多有关该问题的信息会有所帮助,但这里有一种方法可以说明接近1的值的重要性 % Generate a random 10x10 matrix with 50% s

我对MatLab是新手,我有一个包含几百个变量的表格。我知道表中较小的变量比较大的变量具有更大的意义,我希望稀疏矩阵I图能够说明这一点。与其说
lim接近0,不如说
lim接近1,因为我知道最重要的值都接近1。我是不是只取矩阵的倒数?

注意,
spy
是一种可视化矩阵稀疏模式的方法,但不允许您可视化值。因此,
imagesc
是一个很好的候选者

了解更多有关该问题的信息会有所帮助,但这里有一种方法可以说明接近1的值的重要性

% Generate a random 10x10 matrix with 50% sparsity in [0,9]
x = 9*sprand(10,10,0.5);
% Add 1 to non-zero elements so they are in the range [1,10]
x = spfun(@(a) a+1, x);
% Visualize this matrix
figure(1); imagesc(x); colorbar; colormap('gray');

% Create the "importance matrix", which inverts non-zero values.
% The non-zero elements will now be in the range [1/10,1]
y = spfun(@(a) 1./a, x);
% Visualize this matrix
figure(2); imagesc(y); colorbar; colormap('gray');
编辑以处理评论:

% If you want to see values that are exactly 1, you can use
y = spfun(@(a) a==1, x);
% If you want the inverse distance from 1, use
y = spfun(@(a) 1./(abs(a-1)+1), x);

你能提供更多细节吗,比如你是如何作图的,什么样的阈值保持是重要的,矩阵中的值的范围,有很多方法可以解释您的请求和更改数字。我正在从我正在处理的项目的xml中提取一个值表,并试图对程序中使用的所有变量进行可视化表示。值的范围为-1到1000。给定值为1的变量被视为布尔变量。大多数值不会超过100。我想在矩阵中表示变量,这样我可以查看矩阵并快速识别变量之间的任何尖锐差异和变化。因为它们最初是XML格式的,所以有点难以一次接受和读取。