2013-05-10 3 views
-3

Я хочу скрытый fortran to matlab.Fortran to matlab 'undefined function error'

-fortran код

DO 20 I=1,3 
    DO 20 J=1,4 
20 WORMX(I,J)=0.0 

    DO 24 INODE=1,8 
    IPOIN=IABS(LNODS(IELEM,INODE0) 
    DO 24 K=1,3 
    GTOP=COORD(IPOIN,K) 
    GBOT=COORD(IPOIN,K+4) 
    GOSH=((1.0+ZETA)*GTOP+(1.0-ZETA)*GBOT)/2.0 
    DO 22 J=1:3 
22 WORMX(K,J)=WORMX(K,J)+GOSH*SHAPE(J,INODE) 
24 WORMX(K,4)=WORMX(K,4)=WORMX(K,4)+SHAPE(1,INODE)*GTOP-BBOT)/2.0 

    CALL MATM(2,5,0,1) 

. . . -matlab код

function FUNC 

global LNODS COORDI SHAPE NELEM DZETTA 

for I=1:3 
    for J=1:4 
     WORMX=zeros(I,J); 
    end 
end 

SHAPE=zeros(3,9); 
for INODE=1:8 
    for IELEM=1:NELEM 
     IPOIN=abs(LNODS(IELEM,INODE)); 
     for K=1:3 
      GTOP=COORDI(IPOIN,K); 
      GBOT=COORDI(IPOIN,K+4); 
      GOSH=((1.0+0.91)*GTOP+(1.0-0.91)*GBOT)/2.0; 
      for J=1:3 
      WORMX(K,J)=WORMX(K,J)+GOSH*SHAPE(J,INODE); 
      end 
      WORMX(K,4)=WORMX(K,4)+SHAPE(1,INODE)*(GTOP-GBOT)/2.0; 

     end 
    end 
end 

MATM(2, 5, 0, 1) 

. .

Я получил сообщение об ошибке в MatLab коде

"Undefined function or method 'MATM' for input arguments of type 'double'." 

Что проблема в этом коде?

+0

Дубликат http://stackoverflow.com/questions/16477528/undefiend-function-or-variable? MATM не определен нигде в вашем коде, или вы не показываете нам, где он находится. – am304

ответ

0

Ваш код FORTRAN вызывает процедуру MATM. Если ваш код FORTRAN не является ошибкой, то предположительно эта процедура определяется где-то.

Вы уже перешлите процедуру с MATM в MATLAB? Если нет, то это проблема - когда MATLAB доходит до точки MATM(2, 5, 0, 1), она терпит неудачу, так как функция MATM не определена.

Если вы уже перевели MATM в MATLAB, тогда проблема, вероятно, в том, что MATLAB не может найти вашу функцию MATM. Возможно, вам нужно добавить местоположение MATM на ваш путь MATLAB.

Смежные вопросы