-1
MSIZE=100
reftype=0
ident(2,2)=0
fid1= fopen('MSTRPIN.txt','rt');
if fid1 < 0
fprintf('error opening file\n');
return;
end
fid2= fopen('MYPULDAT.txt','w+t');
if fid2 < 0
fprintf('error opening file2\n');
return;
end
PI=4.0*atan(1.0);
V0=2.997925e8;
V02=V0*V0;
EPS=1.0/(V02*4.e-7*PI);
FAC=1./(2.*PI*EPS);
CMTM=2.54E-5;
for i=1:MSIZE
for j=1:MSIZE
ident(i,j)=0.0;
ident(i,i)=1.0;
end
end
line_number = 1;
oneline{line_number} = fgetl(fid1);
while ischar(oneline{line_number})
line_number = line_number + 1;
oneline{line_number} = fgets(fid1);
end
fclose(fid1);
for i=1:line_number-1
Data_1(i,1) = sscanf(oneline{i}(1:3),'%f,');
end
n = Data_1(1,1);
ncdiv= Data_1(2,1);
w = Data_1(3,1);
sep = Data_1(4,1);
t = Data_1(5,1);
er = Data_1(6,1);
w =w*CMTM;
sep =sep*CMTM;
t =t*CMTM;
DELTA=w/double(ncdiv)
%%%%%%%%%Without Dielectric*%%%%%%%%%%%%%%%
%%%%%%%%%Fill A1%%%%%%%%%%%%%%%%%%%%%%%%%%%
dist=0.0;
for i=1:ncdiv
A(1,i)=PHI(dist)
A(i,1)=A(1,i);
dist=dist+DELTA;
end
上面的腳本調用PHI功能(。):Matlab的函數調用從腳本:下標的轉讓尺寸不匹配
function ret= PHI(D)
global FAC ;
global DELTA;
global t;
DOW=2.0*D./DELTA
TOW=4.0*t./DELTA
DOWM=DOW-1.0
DOWP=DOW+1
if(D==0)
ret=FAC*(0.5*log(1.0+TOW*TOW)+TOW*atan(1.0./TOW))
else
ret=DOWM*log(DOWM)DOWP*log(DOWP)-0.5*DOWM*log(DOWM^2+TOW^2)+
0.5*DOWP*log(DOWP^2+TOW^2)-TOW*(atan(DOWM/TOW)-atan(DOWP/TOW))
ret=FAC/2.0
end
end
但是,當運行一個錯誤的腳本發生: 下標賦值尺寸不匹配。
錯誤widesefor(線62) A(1,I)= PHI(DIST)
當我手動分配一個值,以在沒有發生錯誤的函數的d輸入變量。是什麼原因?
你給'D'起什麼作用?它返回什麼? – beaker
一個一維的double值,返回值也是一維的double。 – valgrind
結果是:ret [],它是無量綱的! – valgrind