MATLAB中如何建立一个Mat文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中如何建立一个Mat文件相关的知识,希望对你有一定的参考价值。

RT,谢谢

MATLAB中如何建立一个Mat文件?1、mat文件的生成

(1)直接在Matlab中创建并保存矩阵数据

打开Matlab软件,点击左上角文件(File),然后点击新建(new),选择变量(Variable),就新建了一个mat文件。

点击你新建的文件,即可打开一个编辑器,输入数据即可。

(2)保存单一矩阵数据

如图所示,输入数据,生成数组。最后输入save x1 x。该语句表示将敲入的数组x生成数据x1.mat文件。



(3)如果矩阵A.B都已赋值,现在需要将A,B矩阵保存成mat格式文件,执行如下命令:save mydata A B 就会把A B矩阵数据保存在mydata.dat文件中了。

2、mat文件的读取

在matlab中使用load语句读取mat文件。

(1)x1.mat文件和代码在同一个文件目录下。

load x1,y,a,b,c…;

(2)x1.mat文件和代码不在同一个文件目录下。

load ([‘目录\x1.mat’])

matlab txt转mat文件
txt转mat文件,简单不复杂,就是需要一点转换条件就行。
浏览器打开
【matlab】Matlab中实现数据以.mat文件形式的存储和读取
1、存储 利用save函数 save(filename) %将当前工作区中的所有变量保存在 MATLAB® 格式的二进制文件(MAT 文件)filename 中。 save(filename,variables) %仅保存 variables 指定的结构体数组的变量或字段。 官方save函数介绍:https://ww2.mathworks.cn/help/matlab/ref/save....
参考技术A 打开matlab,点击左上角文件(File),然后点击新建(new),选择变量(Variable),就新建了一个mat文件。
点击你新建的文件,即可打开一个编辑器,输入数据即可。本回答被提问者采纳

如何从 Matlab 中的 .mat 文件中仅加载一个单元格的条目?

【中文标题】如何从 Matlab 中的 .mat 文件中仅加载一个单元格的条目?【英文标题】:How to load only one entry of a cell from a .mat file in Matlab? 【发布时间】:2017-05-30 14:05:18 【问题描述】:

我有一个 1 x 5 的单元格,其中包含 5 个非常大的矩阵。我怎样才能只加载我想要的一个矩阵,而不是加载整个单元格,这会占用我的大部分内存?

类似

M2 = load('Cellmat2');

应将M2定义为单元格Cellmat中的第二个矩阵,该矩阵先前已由save('Cellmat','Cellmat');保存到目录中。

【问题讨论】:

【参考方案1】:

完成此操作的唯一方法是使用matfile 读取文件,因为这样您只能读取parts of variables。它还假设文件最初以7.3 格式保存

matfile 仅支持对 7.3 版格式的 MAT 文件进行高效的部分加载和保存。如果您在版本 7(当前默认值)或更早的 MAT 文件中为变量编制索引,MATLAB® 会发出警告并临时加载该变量的全部内容。

因此,最初要保存数据,您需要指定 -7.3 标志。

save('Cellmat.mat', 'Cellmat', '-v7.3')

然后您可以使用matfileCellmat 加载只是您想要的元素。请注意,您必须使用() 索引来访问它(这将产生一个单元格,然后我们可以索引到该单元格以获取M2)并且您必须在索引到Cellmat 时指定行和列下标。

mat = matfile('Cellmat.mat');

% A little workaround because you can't use  indexing on matfile objects
tmp = mat.Cellmat(1, 2);
M2 = tmp1;

“老派”的替代方法是将您的元胞数组分解为单独的变量并仅保存/加载这些变量

thing = Cellmat1;
other_thing = Cellmat2;

save('Cellmat.mat', 'thing', 'other_thing');

% Only load in one variable
M2 = load('Cellmat.mat', 'other_thing');

【讨论】:

谢谢,成功了! Matlab 没有这样做的标准方法似乎很奇怪.. @Lovsovs 这执行此操作的标准方式。在matfile 之前,我们必须使用多个变量来完成,正如我在上次编辑中展示的那样 我确信这是最好的方法,这不是我的意思。我只是认为它仍然是一种“hacky”的方法(使用 v7.3和 tmp 和所有爵士乐),即 IMO Matlab 应该有一种更直观的方式来实现相同的目标。再次感谢。 :) @Lovsovs 好吧,所以 7.3 将其保存为 HDF5 文件,这是一种更加模块化的数据类型,可以更好地随机访问数据。而() 索引(导致tmp)是其存储方式的产物。要了解有关这些文件内部的更多信息,您可以查看here

以上是关于MATLAB中如何建立一个Mat文件的主要内容,如果未能解决你的问题,请参考以下文章

matlab如何批量读取mat文件中的矩阵?

matlab 将mat文件中数据赋给另外一个变量

Matlab如何导入mat文件并查看其中的数据

matlab 存储mat文件

matlab中,我想依次循环load一个文件夹里的多个.mat文件,如何做到?

matlab中,如何将.txt格式文件转换成.mat格式文件