Problem using for loop

2 ビュー (過去 30 日間)
Sophia
Sophia 2017 年 4 月 27 日
編集済み: per isakson 2017 年 4 月 29 日
clear all;clc;
% load OSI_SAF_OSI401_10km_geoloc_area.mat
% path to data directory
folderpath = 'C:\Users\SK\Documents\MATLAB\SIC_data\OSISAF_401b\';
for m = 7:9;
if m==7
datapath = '2007\07\';
elseif m==8
datapath = '2007\08\';
elseif m==9
datapath = '2007\09\';
end
% make list of files in selected folder
files = dir( fullfile(folderpath,datapath,'ice_conc_nh_2*.hdf') );
files = {files.name}';
%
dd = [];
%
% go through all files and add into datamatrix dcube
for ii=1:numel(files)
%
disp(files{ii}); % show filename on screen to follow progress
filename = fullfile(folderpath,datapath,files{ii}); % full path to file
%
d = h5read(filename,'/Data/data[00]'); % read data
h = h5read(filename,'/Header'); % read header with d/m/y information
%
d = reshape(d,760,1120);
d(d==-99)=NaN;
d(d<0)=NaN;
%
dd(:,:,ii) = d;
end
sic_mnth(:,:,3) = nanmean(dd,3);
% if i put m instead i get the result but i don't want the
% sic_mnth to be (:,:,9) size
end
%
load lat_long.mat;
figure(200707);
clf; hold on;
m_proj('stereographic','lat',90,'long',0,'radius',33);
% levels = [0 15 50 70 85 90 100];
[c,h]=m_contourf(long,lat,sic_mnth(:,:,1),'linestyle','none');
m_coast('patch',[.6 .6 .6]);
m_grid('linewi',2,'tickdir','out');
caxis([0 100]);
colorbar;
If i run it for a single file it is working, the problem is with using the for loop but could not find how to fix it
for m = 7:9;
if m==7
datapath = '2007\07\';
else
end
% make list of files in selected folder
files = dir( fullfile(folderpath,datapath,'ice_conc_nh_2*.hdf') );
files = {files.name}';
%
dd = [];
%
% go through all files and add into datamatrix dcube
for ii=1:numel(files)
%
disp(files{ii}); % show filename on screen to follow progress
filename = fullfile(folderpath,datapath,files{ii}); % full path to file
%
d = h5read(filename,'/Data/data[00]'); % read data
h = h5read(filename,'/Header'); % read header with d/m/y information
%
d = reshape(d,760,1120);
d(d==-99)=NaN;
d(d<0)=NaN;
%
dd(:,:,ii) = d;
end
sic_mnth(:,:) = nanmean(dd,3);
end

回答 (0 件)

カテゴリ

Help Center および File ExchangeData Import and Management についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by