matlab向mat中写入数据,不覆盖原有数据

matlab向mat中写入数据,不覆盖原有数据,第1张

mat中写入数据,不覆盖原有数据的方法。

如下参考:

1.打开matlab,在命令行窗口中输入100个a=[1、2、3、4、5、6],按下回车键,输入保存a,一个变量保存在新生成的a.m.中。在文件中,如下图。

2.在文件夹中,您可以看到新生成的a.m.,在文件中。

3.使用“loada”在上午读取文件的数据,读取完后可以直接使用mat文件中的a变量,如下图。

4.如果想保存多个变量到mat文件,可以保存('data.mat','a','b')。数据。mat是生成的mat文件名,a和b是存储的变量。

5.在第五步中,load('data.mat')用于读取mat文件。读取后,变量a和b可以直接使用,如下图。

保存方法:

save(['E:\Study\', filename], 'data')

MATLAB save 函数用法及实例:

用法一:保存指定变量到当前工作目录

在尝试将A矩阵保存为MAT格式文件,文件名取为example,并且存储起来,方便下次使用。

在matlab主窗口中输入save  example A,回车,会看到左侧当前文件夹出现了相应的example,mat文件。

用法二:保存当前所有变量到当前工作目录

此时MATLAB中有A和b两个变量,试图将其全部保存起来。

在MATLAB主窗口中输入save example2  ,将其保存到example2.mat文件中。

用法三:保存指定变量到指定文件夹

试图将以上矩阵A保存到D:\\JINGYAN\\example.mat中。

在MATLAB主窗口中输入如下命令:save('D:\\csdn\\example.mat','A') 。

可以看到成功在csdn文件夹下生成了example.mat。

扩展资料:

一、在使用save函数时需要注意:

1、要保存的mat文件要写出后缀。

2、要保存的变量名要用单引号引起来。保存所有变量到指定文件夹不在赘述,用命令save('D:\\csdn\\example.mat') 便可。

二、SAVE命令动态批量保存mat文件:

已知矩阵A,先将A矩阵的每一列进行拆分,分别保存在‘1-points.mat’、‘、2-points.mat’、‘3-points.mat’中。

A=[

0.7329   -0.0000   19.2805

-0.0000    0.7329   25.0947]

for i=1:3

chr=[num2str(i),'-points.mat']

b=A(:,i)

save(chr,'b')

end

参考资料来源:百度百科—save函数

参考资料来源:百度百科—mat文件

load不会以这种方式运行,否则加载会表现不一致,具体取决于您请求的变量数量,这会导致极其混乱的行为.

为了说明这一点,假设您编写了一个通用程序,希望从.mat文件加载所有变量,对它们进行一些修改,然后再次保存它们.您希望此程序可以处理任何文件,因此某些文件可能包含一个变量,而某些文件可能存储了多个变量.

如果load使用了您指定的行为,那么您必须添加各种逻辑以检查在加载和修改文件之前存储的文件数量.

以下是此程序与当前加载行为的相似之处

function modifymyfile(filename)

data = load(filename)

fields = fieldnames(data)

for k = 1:numel(fields)

data.(fields{k}) = modify(data.(fields{k}))

end

save(filename, '-struct', 'data')

end

如果行为是您认为您想要的方式

function modifymyfile(filename)

% Use a matfile to determine the number of variables

vars = whos(matfile(filename))

% If there is only one variable

if numel(vars) == 1

% Assign that variable (have to use eval)

tmp = load(filename, vars(1).name)

tmp = modify(tmp)

% Now to save it again, you have to use eval to reassign

eval([vars(1).name, '= tmp'])

% Now resave

save(filename, vars(1).name)

else

data = load(filename)

fields = fieldnames(data)

for k = 1:numel(fields)

data.(fields{k}) = modify(data.(fields{k}))

end

save(filename, '-struct', 'data')

end

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11841301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存