【问题标题】:display mat file in matlab在matlab中显示mat文件
【发布时间】:2011-02-14 02:31:20
【问题描述】:

我想显示 mat 文件的内容以查看所有结果。我知道我可以加载它然后双击它内容显示在工作区中,这种情况发生在mat文件内容很少信息但是当我有超过13000条记录的mat文件内容信息时我无法显示它.谁能帮我找到任何方法将 mat 文件显示为表格?

谢谢

【问题讨论】:

标签: file matlab


【解决方案1】:

我不知道您的数据格式(多维、结构、元胞数组),但有一个名为“openvar”的函数对这些事情非常有用。

让我们定义一个大的随机 500x500x10 3d 矩阵:

large = rand(500,500,10);

此变量包含 250 万个双精度值,占用接近 20MB 的内存。通过双击“大”的工作区窗口在变量编辑器中打开它通常会(至少在我的系统上)给出以下消息:

“无法显示超过 524288 个元素的变量摘要。”

但是你可以使用“openvar”-function来打开某些部分:

openvar('large(:,:,1)'); %# pass the argument as a string.

这将在变量编辑器中打开矩阵的第一个“层”(在本例中为 500x500 矩阵)。如果您需要查看大变量的某些部分,这很有用。

当然,您始终可以定义包含较大变量子集的新变量:

less_large = large(:,:,1);

... 然后在工作区窗口中双击变量编辑器中的“less_large”。但有时“openvar”方法更快/更简单。

【讨论】:

  • 感谢回复,我的数据格式是包含图像文件名的数组结构,另一个变量包含颜色直方图等数值
  • @zenab:我不确定我是否完全理解。文件有多大(以兆字节为单位)?您可以将整个文件打开到工作区中吗?因为如果没有,那么我上面的方法对你来说就没有什么价值了。
  • 我将为您提供以下使用 openvar 函数的示例:我的 mat 文件 (colHist.mat) 此文件包含数组结构 (col) 此数组结构包含以下字段:Nam(image名称),ColHis(颜色直方图),首先我加载(colHist.mat),然后我写:openvar(col.Nam),但我在matlab工作空间中得到空工作表,请帮我解决这个问题跨度>
【解决方案2】:

您有几个选择。从一个清晰的工作区开始,您可以将 mat 文件加载到工作区中。现在工作区中的任何内容都在 mat 文件中。您可以使用变量查看器或使用脚本进行解析。

如果您有 Simulink 工具箱,则可以使用 Simulink.saveVars 将工作区的内容保存到可生成相同内容的人类可读 m 脚本中。很遗憾您需要 Simulink 来执行此操作,因为此功能与 Simulink 无关。

【讨论】:

    【解决方案3】:

    加载数据后,使用whos显示当前工作区的变量如何?请注意,您可能希望在显示之前清除所有其他变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 2011-12-05
      • 2015-06-22
      • 2015-04-13
      • 1970-01-01
      • 2012-01-02
      相关资源
      最近更新 更多