当前位置: 首页 > news >正文

Matlab 将工作区变量保存到文件中(save)

语法

1save(filename)
2save(filename,variables)
3save(filename,variables,fmt)
4save(filename,variables,version)
5save(filename,variables,version,'-nocompression')
6save(filename,variables,'-append')
7save(filename,variables,'-append','-nocompression')

描述

save(filename) 将当前工作区中的所有变量保存在 MATLAB 格式的二进制文件(MAT 文件)filename 中。如果 filename 已存在,save 会覆盖该文件。
save(filename,variables) 仅保存 variables 指定的结构体数组的变量或字段。
save(filename,variables,fmt) 以 fmt 指定的文件格式保存。variables 参数为可选参数。如果您不指定 variables,save 函数将保存工作区中的所有变量。
save(filename,variables,version) 保存为 version 指定的 MAT 文件版本。variables 参数为可选参数。
save(filename,variables,version,'-nocompression') 将变量保存到 MAT 文件,而不压缩。'-nocompression' 标志仅支持 MAT 文件版本 7(默认值)和版本 7.3。因此,您必须将 version 指定为 '-v7''-v7.3'。variables 参数为可选参数。
save(filename,variables,'-append') 将新变量添加到一个现有文件中。如果 MAT 文件中已经存在变量,则 save 会使用工作区中的值覆盖它。
对于 ASCII 文件,'-append' 会将数据添加到文件末尾。
要追加到版本 6 的 MAT 文件,您还必须包括 '-v6' 作为输入参数。
save(filename,variables,'-append','-nocompression') 将新变量添加到一个现有文件中,而不进行压缩。现有文件必须为 MAT 文件版本 7(默认值)或 7.3。
save filename 是命令形式的语法。命令形式需要的特殊字符较少。您无需键入括号或者将输入括在单引号或双引号内。使用空格(而不是逗号)分隔各个输入项。
例如,要保存名为 test.mat 的文件,这些语句是等效的:save test.mat      % command formsave('test.mat')   % function form
您可以包括先前语法中介绍的任何输入。例如,要保存名为 X 的变量:save test.mat X       % command formsave('test.mat','X')  % function form
当有任何输入(例如 filename)为变量或字符串时,请不要使用命令格式。

示例

1、将所有工作区变量保存到 MAT 文件

将工作区中的所有变量保存在二进制 MAT 文件 test.mat 中。如果 filename 为变量,则使用函数语法。

filename = 'test.mat';
save(filename)    clear
load('test.mat')  % 通过 load 函数获取数据

2、将特定变量保存到 MAT 文件

创建两个变量 p 和 q 并将其保存到名为 pqfile.mat 的文件中。

p = rand(1,10);
q = ones(10);
save('pqfile.mat','p','q')

3、将数据保存到 ASCII 文件

创建两个变量,将其保存到 ASCII 文件中,然后查看文件内容。

p = rand(1,10);
q = ones(10);
save('pqfile.txt','p','q','-ascii')
type('pqfile.txt')

4、将结构体字段保存为单个变量

创建一个包含三个字段 a、b 和 c 的结构体 s1。

s1.a = 12.7;
s1.b = {'abc',[4 5; 6 7]};
s1.c = 'Hello!';

将结构体 s1 的字段保存为名为 newstruct.mat 的文件中的单个变量。

save('newstruct.mat','-struct','s1');

通过 whos 函数检查文件内容。

disp('Contents of newstruct.mat:')
whos('-file','newstruct.mat')
>>> 
Name      Size      Bytes      Class      Attributesa        1x1           8      double              b        1x2         246      cell                c        1x6          12      char 

5、将变量保存到 7.3 版的 MAT 文件中

创建两个变量并将其保存到名为 example.mat 的 7.3 版的 MAT 文件中。

A = rand(5);
B = magic(10);
save('example.mat','A','B','-v7.3')

6、将变量保存到 MAT 文件而不压缩

创建两个变量并将其保存到名为 myFile.mat 的 7 或 7.3 版的 MAT 文件中,而不进行压缩。

A = rand(5);
B = magic(10);
save('myFile.mat','A','B','-v7.3','-nocompression')

‘-nocompression’ 标志有助于更快地保存那些大于 2 GB 或者不会从压缩中受益的变量。

7、将变量追加到 MAT 文件中

将两个变量保存到 MAT 文件中。然后,将第三个变量追加到同一文件中。

p = rand(1,10);
q = ones(10);
save('test.mat','p','q')

查看 MAT 文件的内容。

whos('-file','test.mat')
>>> 
Name       Size       Bytes       Class       Attributesp          1x10          80       double              
q         10x10         800       double              

创建一个新变量 a,并将其追加到 MAT 文件中。

a = 50;
save('test.mat','a','-append')
whos('-file','test.mat')
>>> 
Name       Size       Bytes       Class       Attributesa          1x1            8       double              
p          1x10          80       double              
q         10x10         800       double

8、将变量追加到 MAT 文件中而不进行压缩

将两个变量保存到 MAT 文件中。然后,将第三个变量(不进行压缩)追加到同一文件中。
创建两个变量 A 和 B,然后将它们保存到 7 或 7.3 版的 MAT 文件中。默认情况下,save 函数会压缩变量 A 和 B 并将其保存到 myFile.mat 中。

A = rand(5);
B = magic(10);
save('myFile.mat','A','B','-v7.3')
whos('-file','myFile.mat')
>>>
Name       Size       Bytes       Class       AttributesA          5x5          200       double              
B         10x10         800       double              

创建新变量 C,并将其附加到 myFile.mat,而不进行压缩。

C = 5;
save('myFile.mat','C','-append','-nocompression')
whos('-file','myFile.mat')
>>>
Name       Size       Bytes       Class       AttributesA          5x5          200       double              
B         10x10         800       double              
C          1x1            8       double              
http://www.lryc.cn/news/286718.html

相关文章:

  • 源码实现简介
  • 我每天如何使用 ChatGPT
  • MySQL修炼手册14:用户权限管理:安全保障与数据隔离
  • 动态规划解决马尔可夫决策过程
  • ubuntu1604安装及问题解决
  • Leetcode—24. 两两交换链表中的节点【中等】
  • USRP相关报错解决办法
  • 【剑指offer】重建二叉树
  • 中仕教育:事业编招考全流程介绍
  • 149. 直线上最多的点数
  • 不合格机器人工程讲师再读《悉达多》-2024-
  • 【STM32CubeMX串口通信详解】USART2 -- DMA发送 + DMA空闲中断 接收不定长数据
  • Webpack5入门到原理19:React 脚手架搭建
  • 苹果眼镜(Vision Pro)的开发者指南(6)-实战应用场景开发 - 游戏、协作、空间音频、WebXR
  • flutter底层架构初探
  • 初识SQL注入
  • React初探:从环境搭建到Hooks应用全解析
  • 设计模式——1_6 代理(Proxy)
  • 性能优化(CPU优化技术)-NEON 介绍
  • Kafka-服务端-KafkaController
  • ffmpeg使用手册
  • 操作系统导论-课后作业-ch15
  • 宝塔面板SRS音视频TRC服务器启动失败
  • 04-Seata修改通信端口
  • 活动回顾丨云原生技术实践营上海站「云原生 AI 大数据」专场(附 PPT)
  • 【数据结构与算法】4.自主实现单链表的增删查改
  • Linux系统常用命令行指令
  • java SSM园林绿化管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  • 【issue-halcon例程学习】edges_color.hdev
  • 设计模式—行为型模式之备忘录模式