【问题标题】:Matlab scatter two matrices - issueMatlab分散两个矩阵 - 问题
【发布时间】:2015-01-01 21:27:04
【问题描述】:

我想弄清楚 scatter 函数在 matlab 中是如何工作的。 例如,我有两个矩阵:

 mat1= rand(20,20)
 mat2= rand(20,20)

此时我需要打开一个图形并使用“散点图”功能来显示 mat1 中的值与 mat2 中的值的散点图。 我所做的是:

figure()
scatter(mat1,mat2)

显然这是错误的。但我不知道该怎么做。此外,我还阅读了 matlab docs Scatter Function - MATLAB DOCS中有关 scatter 函数的文档

欢迎提出建议!谢谢。

【问题讨论】:

    标签: matlab scatter


    【解决方案1】:

    由于scatter 函数需要向量(具有一行或一列的矩阵),请尝试

    figure()
    scatter(mat1(:),mat2(:))
    

    (:) 运算符将矩阵转换为向量。

    【讨论】:

    • 顺便问一下,你知道如何区分矩阵值吗?例如 mat1 向量将是红色的,另一个是蓝色的
    • @OfirAttia,我编写的命令会将mat1 视为x 值,并将mat2 视为y 值。你什么意思?
    【解决方案2】:

    Scatter 只是一种绘制数据的方式。 Scatter 将数据绘制为点而不连接它们。试试

    mat1= rand(1,20) 
    mat2= rand(1,20) 
    subplot(121) 
    scatter(mat1,mat2); 
    subplot(122) 
    plot(mat1,mat2) 
    

    【讨论】:

      【解决方案3】:

      这个答案是为了回应 OP 的评论,要求如何将不同的标记设置为不同的颜色。

      方法 1:逻辑索引
      要求您为每种颜色定义索引。在下面的示例中,红色标记是随机选择的;其余的标记将是蓝色的。

      % MATLAB R2017a
      mat1 = 100*rand(20,1);
      mat2 = 100*rand(20,1);
      
      idxRed = rand(20,1)> 0.5;
      idxBlue = ~idxRed;
      
      s(1) = scatter(mat1(idxRed),mat2(idxRed),[],'r','filled');
      hold on
      s(2) = scatter(mat1(idxBlue),mat2(idxBlue),[],'b','filled');
      
      % Cosmetics
      daspect([1 1 1])
      box on
      for j = 1:2
          s(j).MarkerEdgeColor = 'k';    
          s(j).MarkerFaceAlpha = 0.3;    % Transparency control
      end
      

      方法 2:自定义颜色图
      创建一个自定义colormap,直接映射到您想要的颜色。在下面的示例中,颜色图仅包含两种颜色。逻辑变量idxRed 只有两个可能的值,所以这里不需要调用caxis([0 1])

      % Create custom colormap  
      col1 = [0 1 0]; % Green 
      col2 = [1 0 0]; % Red
      cmap = [col1;col2];
      % Plot
      colormap(cmap), hold on, box on
      scatter(mat1,mat2,[],idxRed,'filled');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-09
        • 1970-01-01
        • 2020-07-09
        • 1970-01-01
        • 2019-07-12
        • 1970-01-01
        相关资源
        最近更新 更多