フィルターのクリア

Assignment has more non-singleton rhs dimensions than non-singleton subscripts

3 ビュー (過去 30 日間)
Sophia
Sophia 2016 年 3 月 28 日
コメント済み: Walter Roberson 2016 年 4 月 1 日
% open binary file for
% Polar Pathfinder mean monthly 25 km EASE-Grid Sea Ice Motion Vectors, Version
folderpath = 'C:\Users\sk\Documents\MATLAB\nsidc0116_ice_motion_vector_v3\';
years = 1979:2014;
sid_allyears = zeros(361,361,12,36);
yearindex = 0;
for j = years;
disp(j);
yearindex = yearindex+1;
stryear = num2str(j);
filepath = fullfile(folderpath,stryear);
files = dir(fullfile(filepath,'\icemotion.grid.month.*.n.v3.bin') );
files = {files.name};
r_years = []; % (361,361,12)
d_years = []; % (361,361,12)
mm = 0 ;
for i=1:numel(files);
disp(files{i});
mm = mm+1;
filename = fullfile(filepath,files{i});
fid = fopen(filename);
rawdata = fread(fid,[361, inf],'int16');
fclose(fid);
% reshape it into a [3x361x361] matrix
tdata = reshape(rawdata,[3, 361, 361]);
% change 3d matrix to simple matrix, and divide by 10 to get cm/second
u = squeeze(tdata(1,:,:)./10.);
v = squeeze(tdata(2,:,:)./10.);
error = tdata(3,:,:)./10;
[TH,R] = cart2pol(v,u);
D = rad2deg(TH);
r_years(:,:,mm) = R;
d_years(:,:,mm) = D;
end
sid_allyears(:,:,:,yearindex) = r_years;
end

回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 3 月 28 日
Your line
r_years(:,:,i) = R;
implies that r_years will be a 3D matrix with the third dimension being as large as the number of files.
Your line
sid_allyears(:,:,j) = r_years;
implies that r_years is a 2D matrix (since j is a scalar.)
This is a fundamental mismatch in expectation about what your r_years matrix is and what your output size should be. Should your third dimension of sid_allyears() be the year index, or should it be the file number index?
  4 件のコメント
Sophia
Sophia 2016 年 3 月 29 日
編集済み: Sophia 2016 年 3 月 29 日
each year contains 12 files..To be honest i don't know how to use this subscript.. i am learning matlab through mathwork discussions, and what so ever i think can work in my case i am using that
Walter Roberson
Walter Roberson 2016 年 4 月 1 日
sid_allyears(:,:,:,yearindex) = r_years;

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMultidimensional Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by