[問題] 關於 Index exceeds matrix dimens~請大大幫忙看一下^^"已回收

看板MATLAB作者 (此ID停止使用)時間16年前 (2009/06/12 11:18), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
小弟在跑lop時會出現 ??? Index exceeds matrix dimensions. 查閱本版~有提到矩陣維度不符合.. 仔細檢查本身資料~發現把lop裡面的tperinterval 1個1個做都OK~ 可是如果合在一起~就會發生問題 例如合在一起時tperinterval=0.3的時候 index=find(D_per==tperinterval); index是 Empty matrix: 0-by-1 但是明明D_per有0.3的數值存在阿><" 能否請大大幫忙一下~感激 ========================================================================= D=load('SSC percentage list.txt'); D_per=D(:,1); D_MLT=D(:,2); D_MLat=D(:,3); filepath=['SSC percentage file list.txt']; fid = fopen(filepath,'r'); AllName = textscan(fid, '%s'); files = strvcat(AllName{1}); fclose(fid); Nfile = size(files,1); for tperinterval=0:0.1:0.9 index=find(D_per==tperinterval); for p=0 startMLT=p-2; if startMLT < 0 startMLT=startMLT+24; end index1=find(D_MLT==startMLT); for q=0 index2=find(D_MLat==q); index3=intersect(index,index1); index4=intersect(index3,index2); nsuit=length(index4); h=100:2:900; nh=length(h); S=zeros(nh,1); N=zeros(nh,1); S2=zeros(nh,1); for k = 1:nsuit input=index4(k); filenow = deblank(files(input,:)); filenow1=strrep(filenow, '_nc','.txt'); C=load (filenow1); alt=C(:,1); e_dens=C(:,2); n=length(alt); alt(1); idx=find(h>=alt(1)); idx1=idx(1); idxdiff=idx1-1; for ii=idx1:idx1+n-1 S(ii)=S(ii)+e_dens(ii-idxdiff); N(ii)=N(ii)+1; S2(ii)=S2(ii)+e_dens(ii-idxdiff).^2; end end idxnz=find(N~=0); Snz=S(idxnz(1):idxnz(end)); Nnz=N(idxnz(1):idxnz(end)); S2nz=S2(idxnz(1):idxnz(end)); meanS=Snz./Nnz; hnz=h(idxnz(1):idxnz(end)); meanS2=S2nz./Nnz; sd=sqrt(meanS2-(meanS).^2); hnz1=hnz'; Avedata=[hnz1 meanS]; end end end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.45.96

06/12 15:22, , 1F
矩陣的index是從1開始 不是0
06/12 15:22, 1F

06/13 23:06, , 2F
不懂??~能否說明的更清楚呢??謝謝!!
06/13 23:06, 2F
文章代碼(AID): #1ACSaVg3 (MATLAB)
文章代碼(AID): #1ACSaVg3 (MATLAB)