MATLAB避免在命令窗口中进行矩阵包装

时间:2014-11-18 16:09:17

标签: matlab matrix

有没有办法阻止MATLAB在命令窗口中显示矩阵时将矩阵包装成多个块?这就是我的意思:

>> x = rand(10,1);
>> y = rand(10,1);
>> c = squareform(pdist([x y]))

c =

  Columns 1 through 6

         0    0.9160    0.4707    0.7161    0.6093    0.1555
    0.9160         0    0.8495    0.8984    0.6463    1.0714
    0.4707    0.8495         0    0.2459    0.2477    0.5541
    0.7161    0.8984    0.2459         0    0.2603    0.7970
    0.6093    0.6463    0.2477    0.2603         0    0.7306
    0.1555    1.0714    0.5541    0.7970    0.7306         0
    0.0881    0.9695    0.4311    0.6762    0.6012    0.1295
    0.4698    0.4566    0.4587    0.6057    0.3612    0.6245
    0.2442    1.1079    0.7006    0.9460    0.8534    0.1629
    0.8282    0.1355    0.7200    0.7629    0.5114    0.9832

  Columns 7 through 10

    0.0881    0.4698    0.2442    0.8282
    0.9695    0.4566    1.1079    0.1355
    0.4311    0.4587    0.7006    0.7200
    0.6762    0.6057    0.9460    0.7629
    0.6012    0.3612    0.8534    0.5114
    0.1295    0.6245    0.1629    0.9832
         0    0.5156    0.2700    0.8736
    0.5156         0    0.6857    0.3588
    0.2700    0.6857         0    1.0359
    0.8736    0.3588    1.0359         0

我希望能够复制并粘贴矩阵c(比如LaTeX文档或者MATLAB脚本),但这对于当前的输出格式来说显然很麻烦,特别是对于较大的矩阵。

2 个答案:

答案 0 :(得分:5)

你可以fprintf([repmat('%f\t', 1, size(c, 2)) '\n'], c');做出这个输出:

0.000000    0.818064    1.054641    0.342287    0.668041    0.717356    0.597756    0.804045    0.650459    0.815819    
0.818064    0.000000    0.778921    0.485276    0.322136    1.157594    0.833495    0.363079    0.185730    0.060130    
1.054641    0.778921    0.000000    0.917058    0.529164    0.815812    0.556431    0.421934    0.846744    0.837905    
0.342287    0.485276    0.917058    0.000000    0.422061    0.885196    0.638057    0.565268    0.309989    0.476907    
0.668041    0.322136    0.529164    0.422061    0.000000    0.848242    0.518164    0.143653    0.325248    0.368679    
0.717356    1.157594    0.815812    0.885196    0.848242    0.000000    0.333280    0.894846    1.078174    1.191962    
0.597756    0.833495    0.556431    0.638057    0.518164    0.333280    0.000000    0.562174    0.773488    0.871944    
0.804045    0.363079    0.421934    0.565268    0.143653    0.894846    0.562174    0.000000    0.428803    0.420291    
0.650459    0.185730    0.846744    0.309989    0.325248    1.078174    0.773488    0.428803    0.000000    0.167448    
0.815819    0.060130    0.837905    0.476907    0.368679    1.191962    0.871944    0.420291    0.167448    0.000000    

但是,评论中提到的variable explorer可能更容易使用。

答案 1 :(得分:2)

正如我在评论中提到的,我认为没有办法改变命令行输出。如果您不需要程序化解决方案,可以使用variable explorer使用稍微Excel-ish界面与您的数据进行交互。

您可以通过在工作区浏览器中双击变量,右键单击变量并选择Open,选择变量并点击ctrl+D(在Windows上)或以编程方式访问变量资源管理器使用openvar

如果您确实需要程序化解决方案,可以使用众多导出功能之一(sprintffprintfsave等),其中一个例子是@的答案badjr张贴。