matlab - 如何突出显示或识别矩阵中具有特定值的列?

标签 matlab matrix identify

我想在 MATLAB 中突出显示或标识矩阵中具有特定值的列。假设我有一个矩阵 A = [1 0 1 1 0 1; 1 1 0 0 0 1; 1 0 1 1 0 1; 0 1 1 0 0 1]

上述矩阵的结果是第 5 列,因为它包含所有零。我还想知道是否可以突出显示结果列以供识别。请帮我。我有一个非常大的矩阵来应用这个原则。

最佳答案

如何组合 findall 以获得全零列 like this 的列索引?

A = [1 0 1 1 0 1; 1 1 0 0 0 1; 1 0 1 1 0 1; 0 1 1 0 0 1];
 
ind = find(all(A==0,1))
ind = 
    5

all 的第二个输入参数是指定它沿着第一个维度,即行。在这里它并不是真正必要的,但我发现这是一个很好的做法,因为你总是确定它是正确的尺寸。如果在某些情况下您可能获得 1xn 向量而不是 mxn,这一点尤其重要。

创建一个彩色矩阵:

这是一个 hack,我不一定推荐它,但如果你真的想在 MATLAB 中这样做,这是一个替代方案。此外,我认为您在执行此操作时可能会学到很多关于 MATLAB 的知识,因此花时间可能是值得的。

您可以使用 imagesc 创建一个包含所有值 1 的彩色图,但第 5 列中的值将是 0(或相反,无所谓) .这将给出一个只有两种颜色的图,一种用于 1 的值,一种用于 0 的值。您可以使用 colormap 选择您想要的颜色。然后你 create a mesh 确定你想要显示的所有值的位置,使用 num2str 将矩阵转换为字符串,并将它们全部组合起来。您需要尝试一些以获得正确的位置,因为您可能希望行之间的填充比列之间的填充少。您可以使用 this answer 作为指南。最后, remove the axes 。如果您阅读并尝试理解所引用答案的每一行,适应起来应该相当简单。

简单的方法:

我有一个非常大的矩阵...”。这样的矩阵通常不是包含在报告中的好主意。但是,如果你真的想要,我实际上建议你从 variable explorer 复制并粘贴到 MS Excel 中(如果不止一次这样做,则使用 xlswrite)。由于您知道要为哪一列着色,因此单击“颜色按钮”应该相当简单。

关于matlab - 如何突出显示或识别矩阵中具有特定值的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32733511/

相关文章:

matlab - 如何使用椭圆计算透视变换

matlab - 免费的 MATLAB 环境

opencv - 将 OpenCV 姿态估计应用于 Blender 相机

java - 如何在Java中使用for循环时打印非对称值

Matlab,无循环的整数向量到二进制矩阵

string - 在matlab中gui的文本框中设置单词 'remove'

替换由另一个矩阵索引的矩阵元素

windows - Paperclip my Image 无法被 'identify' 命令识别。 (运行 Windows)

algorithm - 这个 O(N*k) 排序算法是什么?

Java - 如何找到类和其他级别的依赖关系