【问题标题】:How to display numbers in colour in a matrix (MATLAB)如何在矩阵中以彩色显示数字(MATLAB)
【发布时间】:2018-01-06 06:25:48
【问题描述】:

目前我有一个矩阵,比如:
A=[1 2 3 4 5; 4 7 3 2 2; 4 5 5 9 1]

我想要以某种颜色显示最后的“n”列,其中 n 可以是 1、2、3 等。因此,如果 n=1,我希望按原样显示矩阵,但将 [5;2;1] 列显示为红色。是否可以在 MATLAB 中执行此操作?如果有,怎么做?

感谢您的帮助

【问题讨论】:

    标签: matlab matrix colors


    【解决方案1】:

    一个简单的解决方案是使用cprintffor

    certainColor = 'green';
    rowLength = size(A,1);
    columnLength = size(A,2);
    for idx = 1 : rowLength
        for jdx = 1 : (columnLength - n)
            cprintf('text', '%d\t', A(idx,jdx))
        end
        for jdx = n : -1 : 1
            cprintf(certainColor, '%d\t', A(idx, columnLength - jdx + 1))
        end
        cprintf('text', '\n')
    end
    

    【讨论】:

    • 谢谢,这确实有助于着色。然而问题是它显示为一串数字(本质上是一个向量),而不是矩阵,我该如何解决这个问题?具体来说,它将我上面用作示例的矩阵转换为以下内容:1 2 3 4 5 4 7 3 2 2 4 5 5 9 1(具有正确的颜色)。最重要的是,双箭头 (>>) 出现在该字符串的末尾而不是其下方,并且箭头为绿色。
    • 我添加了\n 以获取每一行中的每一行。
    • 抱歉,但我似乎注意到此代码的另一个问题 - 它交换了列。因此,如果我为最后 3 列着色,如果这些列最初是 1、2、3、4、5,那么着色后,它们变为 1、2、5、4、3。我认为这可以通过将第 8 行更改为:for jdx=n:-1:1 来解决
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多