Matlab 在将ASCII文件转换为NetCDF时,如何将数据列读入while循环?

Matlab 在将ASCII文件转换为NetCDF时,如何将数据列读入while循环?,matlab,loops,ascii,netcdf,Matlab,Loops,Ascii,Netcdf,我正试图通过MATLAB将一个大的ASCII文件转换成NetCDF。这是一个15329 x 16列的气候文件 nccreate('monthly_tmp.nc', 'monthly_temperatures', 'Dimensions', {'ff' 12 'lon' 180 'lat' 180}, 'Format','classic') fid=fopen('tmp.mat'); var=zeros(12); while ~feof(fid) coor=fscanf(fid,

我正试图通过MATLAB将一个大的ASCII文件转换成NetCDF。这是一个15329 x 16列的气候文件

nccreate('monthly_tmp.nc', 'monthly_temperatures', 'Dimensions', {'ff' 12 'lon' 180  'lat' 180}, 'Format','classic') 
fid=fopen('tmp.mat');
var=zeros(12); 
while ~feof(fid) 
    coor=fscanf(fid, '%d', 2); 
    var=fscanf(fid, '%f', inf); 
    lat=coor(1); lon=coor(2);
    ncwrite('monthly_tmp.nc', 'monthly_temperatures', var (1 lat, lon));
end
列以纬度、经度、年份和12个月值列出

我需要先读取lat和lon,然后给网格分配一个月值

所以我需要第1列和第2列,然后第4-15列是我的温度值

我真的被困在如何将变量输入while循环中


谢谢你的帮助

tmp.mat
是普通的matlab数据文件吗?如果是这样,您需要
加载
.mat
文件,而不是尝试
fopen
它。加载后,您将得到一个
15329 x 16
变量。你可以为每一行做一个for循环,然后按照你想要的方式写入数据。我已经将文件加载到matlab中了。因此,我是否能够在代码中打开它,因为它已经加载到它中了?