【20210910】【Matlab】load .mat 数据之后将变量重命名

一、背景

        在使用 Matlab 过程中,需要读取 .mat 数据使用,使用 load 命令之后赋给一个变量,发现并不是把 mat 数据的内容赋给这个变量,而是赋值了一个结构体。所以在使用时,问题在于这个结构体内变量名是未知的,所以没办法直接使用。

二、解决办法

        fieldnames:获取一个未知的 struct 的所有 field;

        getfield:返回 struct 中指定字段的值。

% 创建一个结构体
tmp.a = 1;
tmp.b = 2;
tmp.c = 3;
save tmp tmp;
clear tmp;

% 载入 mat 数据
val_struct = load('tmp.mat');  % 载入 mat 数据,出来是一个结构体,我们需要的变量是【结构体.变量名】
val_names = fieldnames(val_struct);  % 获取结构体后那个未知的变量名
val = getfield(val_struct, val_names{1});  % 读取该变量名下的数据,并重新命名变量名val

【20210910】【Matlab】load .mat 数据之后将变量重命名_第1张图片

【20210910】【Matlab】load .mat 数据之后将变量重命名_第2张图片

        (参考:matlab load函数变量的名字,解决matlab load文件不知道变量名的问题)

        (参考:matlab 列出struct中所有的fields----fieldnamea)

        (参考:getfield)                

你可能感兴趣的:(Matlab,matlab)