【发布时间】:2017-06-23 05:25:46
【问题描述】:
当将 .Mat 文件中的数据直接加载到变量中时,它会存储一个结构而不是变量本身。
例子:
myData.mat 包含var1、var2、var3
如果我这样做:
load myData.mat
它将在我的工作区中创建变量 var1、var2 和 var3。好的。
如果我将 load 返回的内容分配给变量,它会存储一个结构。这是正常的,因为我正在加载几个变量。
foo = load('myData.mat')
foo =
struct with fields:
var1
var2
var3
但是假设我只对var1 感兴趣,我想直接存储到变量foo 中。
Load 可以选择仅从 .mat 文件中加载特定变量,但它仍然存储结构
foo = load('myData.mat', 'var1')
foo =
struct with fields:
var1
我希望将var1 直接分配给foo。
当然可以:
foo = load('myData.mat', 'var1')
foo = foo.var1;
但这应该是一种在一行中自动执行此操作的方法吧?
【问题讨论】:
-
什么困扰着你?
clear var1?在这种情况下,您可以使用:foo=load('myData.mat', 'var1')foo=foo.var1; -
困扰我的是我无法直接加载我想要的变量,必须将 foo 重新分配给 foo.var1。将使用您的提案更新问题,这比使用 clear 更好。当您仅加载一个变量时,Matlab 应该有一种特殊情况,因此它不会加载结构。