【问题标题】:Displaying a matrix obtained from a vectorised structure显示从矢量化结构获得的矩阵
【发布时间】:2020-11-05 10:36:38
【问题描述】:

我正在尝试提取位于 .mat 结构中的变量 x 中的坐标。我想将它们打印为三列矩阵。比方说:

-5543837.67700032 -2054567.16633347 2387852.25825667
 4641938.565315761 393003.28157792 4133325.70392322
 -3957408.7414133 3310229.46968631 3737494.72491701
 1492206.38965564 -4458130.51073730 4296015.51539152
 4075539.69798060 931735.497964395 4801629.46009471
 3451207.69353006 3060375.44622100 4391915.05780934

我知道我可以得到它们

file=load('./filee_scan.mat')
stat = [file.scan.stat]';
x = [stat.x]';

但我得到类似的东西:

-5543837.67700032
-2054567.16633347
 2387852.25825667
 4641938.565315761
 393003.28157792
 4133325.70392322
 % :: and so on

我想像开头那样打印它们(x 作为 3 个坐标和每个站点一条线的向量),但我不知道如何处理它们。我尝试过循环,但我真的不知道如何表达它们。

如何将我的坐标显示为 n -by- 3 矩阵?

这是扫描文件:

这是x

【问题讨论】:

  • 谢谢,我没有解决问题。它只显示所有小数...我想要的是查看每个条目的向量 X 。我不在乎格式。
  • 您的问题不清楚,但如果我理解正确,您希望能够在变量资源管理器中以十进制形式查看变量的值吗?可以在这里调整:Preferences->Variables
  • 好的。变量 x (在我看来)它是一个向量内的一个向量(3 个坐标)。所以,我想打印它,因为我把它放在帖子的开头。像 x(n,3) 一样,n 是整个文件中的总行数。在这个阶段,我不关心十进制格式。我只想要一个 (nx3) 的矩阵而不是一个 3n 的向量。
  • 我编辑了问题并修改了我得到的输出,以表明我的问题与十进制格式无关。
  • 另外,请将代码和数据添加为文本 (using code formatting),而不是图像。图片:A)不允许我们复制粘贴代码/错误/数据进行测试; B) 不允许根据代码/错误/数据内容进行搜索;和many more reasons。除了代码格式的文本之外,只有在图像添加了一些重要的东西,而不仅仅是文本代码/错误/数据传达的内容时,才应该使用图像。因此在这种情况下,一个简单的 2 字段结构会更好。

标签: arrays matlab matrix


【解决方案1】:

[stat.x].' 给你一个扁平的向量,正如你所见。您可以reshape() 将该向量转换为所需的格式:

x = reshape(x,3,[]).';

这首先重塑为 3 行和 n 列(您的站数),然后转换为具有 3 列的 n 行。


有关reshape 工作原理的简短介绍,请参阅this answer of mine

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    相关资源
    最近更新 更多