gpt4 book ai didi

matlab - 保存 .mat 文件,使用 -v7.3 开关?

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:19 24 4
gpt4 key购买 nike

我正在运行一个 m 文件,创建两个变量,ClusWatts_Map。我想将这两个变量保存到一个以“.mat”结尾的文件中。两个变量的尺寸均为 (1152,241,319),1152 为 360 度经度,增量为 0.3125 度,241 为纬度,从 30S-30N 以 0.25 度增量,超过 319 个时间步长。代码一直运行到最后,我收到错误:

[Warning: Variable 'Clus' cannot be saved to a MAT-file whose version is older
than 7.3.
To save this variable, use the -v7.3 switch.
Skipping...]
[Warning: Variable 'Watts_Map' cannot be saved to a MAT-file whose version is
older than 7.3.
To save this variable, use the -v7.3 switch.
Skipping...]

我使用的是 Matlab R2014a 版本,所以我认为这是最新版本。此外,我在较小的空间域(但超过 2920 个时间步长)上运行了完全相同的代码,没有出现错误。

%  Clear all variables, initialize counter, indexed by timestep
clc;
clear all;

rain = NaN(1152,241,319);
Clus = NaN(1152,241,319);
Areas_Final = NaN(500,319);
Wattage_Final = NaN(500,319);
Cluster_size = zeros(319,1);
Watts_Map = zeros(1152,241,319);

for year = 2000%:2008;
Nyear = sprintf('%04d',year);

% Call on the files for each year
filename = (['pr_3hr_GFDL-HIRAM-C360_amip_r1i1p1_' num2str(Nyear) '010100-' num2str(Nyear) '123123_subset_TROPICS.nc']);
disp(filename)
disp(year)

rain_rate = ncread(filename,'pr');

% Call on each timestep
for i = 960:4:2236; % Approx May 1st-Sep 30th

% Set extract subset for region, mask land areas, for each
% timestep

disp(i)
rain = rain_rate(:,:,i);

% Eliminate bad/no data points
index_rain = (rain >= (5.4e-05)) & (rain < 1e-2); % 0.2mm/hr is min rain rate

% Cluster each morning and afternoon matrix
Clus(:,:,i) = cluster_it(index_rain);

% Calculate cluster areas
Areas = cluster_areas_TROPICS(Clus(:,:,i));
Areas_Final(1:length(Areas),i) = Areas;

% Calculate cluster wattages
Wattage = cluster_wattage(Clus(:,:,i),rain);

Cluster_size(i,1) = max(max(Clus(:,:,i)));

% Create dummy matricies to populate and use to create the wattage
% maps
D = zeros(1152,241);
E = squeeze(Clus(:,:,i));
for index = 1:Cluster_size(i);
D(E == index) = Wattage(index);
end

Watts_Map(:,:,i) = D;

% Clear the dummy matricies
clear D E

end

% Save the output as a .mat file
file_out = sprintf(num2str(Nyear), year);
matfile = [file_out '_TROPICS_Watts_Maps_inc_Land_low_rain_threshold.mat'];
save(matfile, 'Clus', 'Watts_Map');

% Clear unneeded variables to save memory and prevent overwriting
clear index_rain rain Areas Wattage Clus file_out filename Areas_Final rain_rate Watts_Map Cluster_size year matfile

end

最佳答案

即使在当前版本中,默认格式也不是 v7.3。您必须指定它:

save(matfile, '-v7.3', 'var1', 'var2');

您还可以在“常规首选项”中设置默认值:

enter image description here

请注意 v7.3 does compress data as of R2008a :

Compression of -v7.3 MAT-Files

You can store data items that are over 2 gigabytes in size in a MAT-file using the -v7.3 option for the save function. This option was introduced in MATLAB R2006b. With MATLAB R2008a, save now compresses these MAT-files.

我已经看到 v7.3 文件的文件大小爆炸了,但那是历史,也许现在更好了。

关于matlab - 保存 .mat 文件,使用 -v7.3 开关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27240261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com