matlab - 如何将 1 个结构字段保存在另一个已保存结构及其字段中
问题描述
虽然有类似的帖子,但我还没有看到这种在结构中保存结构的场景。
这是我的目标:将一个结构字段保存在已定义的已保存结构中。
我的水果结构已经保存在它的文件夹(.mat)中,里面是:
fruit =
struct with fields:
apples: 5
oranges: 2
pineapple: 1
我的目标是在已经保存的结构中添加一个葡萄田。
fruit =
struct with fields:
apples: 5
oranges: 2
pineapple: 1
grapes: 13
这是我的代码:
clc;
clear all;
fruit.apples = 5
fruit.oranges = 2
fruit.pineapple = 1
save('fruit.mat', '-struct', 'fruit')
clear all;
load('fruit.mat')
fruit.grapes = 13
save('fruit.mat', '-struct', 'fruit')
输出:只有葡萄田被保存,没有其他田地:苹果、橙子和菠萝。
目标输出:如何将所有 4 个字段保存在相同的水果结构中?
解决方案
'-struct'
保存到 mat 文件时,您要么需要省略参数:
...
save('fruit.mat', 'fruit');
clear all;
load('fruit.mat');
fruit.grapes = 13;
save('fruit.mat', 'fruit');
或者将结构输出 fromload
放入一个变量中fruit
:
...
save('fruit.mat', '-struct', 'fruit');
clear all;
fruit = load('fruit.mat');
fruit.grapes = 13;
save('fruit.mat', '-struct', 'fruit');
当您在包含结构的'-struct'
变量之前添加参数save
时,该函数将该结构的字段作为单个变量存储在文件中,而不是将结构存储为一个变量。因此,在上面的第二个选项中,文件“fruit.mat”将包含三个变量:apples
、oranges
和pineapple
。没有输出的调用load
只会在工作区中创建这三个变量,而不是包含在结构中。您可以通过指定输出将文件中的所有变量收集到一个结构中load
。
推荐阅读
- web-scraping - 估算亚马逊产品价格
- angular - 在 Angular 7 中,当使用 Observable 时,页面会在不请求的情况下刷新
- windows - 在 Haskell 中获取 Windows 内部版本号
- android - 按钮不显示(左)图像
- jquery - 引导程序上的砌体网格
- java - 从python调用Java应用程序时无法读取文件
- android - java.lang.NoSuchMethodError: 没有虚拟方法加载(Ljava/lang/String;)Lcom/bumptech/glide/DrawableTypeRequest;
- java - Jython 错误:[错误] 无法构建终端;回退到不受支持
- java - Java随机化字符串
- javascript - 单击按钮时如何在另一个导航药丸中添加引导卡