加载 .mat 文件,但不在工作区中

问题描述 投票:0回答:1
if contains(p_path, 'left')
    save(left_path', 'a', 'b', 'c', 'd');
    a = load(left_path);
elseif contains(p_path, 'right')
    save(right_path', 'a', 'b', 'c', 'd');
    b = load(right_path);
end

left_path 定义如下(基本路径类似于“C:\Users\Documents”)

left_mean_data_path = [base_path, '\left_data.mat'];

运行此代码,我检查文件是否已在正确的文件夹中创建且名称正确(left_path),这意味着“保存”效果良好。然而,“加载”那些不起作用。文件“left_data.mat”或变量“a”、“b”、“c”、“d”不在工作区中。

要将这些变量输入工作场所,我必须直接单击“left_data.mat”文件。

有人可以帮助我吗?

  • 上面的代码不在主脚本中,而是在函数文件中。是这个问题吗??
matlab save load workspace
1个回答
0
投票

语法

data = load(filename)
会将该 matfile 的内容加载到结构体
data
。所以在
data
里面,你会找到你保存的所有变量。

但是,如果您在函数中执行此行,数据将加载到该函数的工作区中,而不是基础工作区中。读取基础和函数工作区在工作区之间共享数据

将数据获取到基础工作区的最简单方法是在函数中使用

assignin
。在你的函数中,你会这样做:

function myfunction()
    data = load(filepath);
    assignin('base', 'data',data); % base workspace, variable name in base workspace, variable to assign in base workspace
end
© www.soinside.com 2019 - 2024. All rights reserved.