필터 지우기
필터 지우기

Error when using writeif statement

조회 수: 1 (최근 30일)
Jessica
Jessica 2012년 7월 16일
Hi, I am translating code from Fortran to Matlab with a converter and I get an error of "Unexpected MATLAB operator" in the following part:
for t = 1: ntime
for j = 1: nequation(t);
k = eqindex(t,j);
writef(fid_1,[repmat('%i',1,2),repmat('%16.8f',1,<)],t,k, beta(t,k,:), z(t,k,:), h(t,k,k));
writef(fid_1,[repmat('%i',1,2),repmat('%16.8f',1,<)],t,k,sdbeta(t,k,:),sdz(t,k,:),sdh(t,k,k));
writef(fid_1,['%0.15g \n']);
end;
writef(fid_1,['%0.15g \n']);
end;
Could someone please guide me as to what I am doing wrong?
Thanks,
Jessica
[EDITED, code formatted, Jan]
[EDITED 2, copied from Answers section, please care for a proper formatting]:
Thanks for your quick answers. I guess my main problem is that I am translating from Fortran with this converter and this is the output which I got, which I know makes no sense. Does anyone know Fortran and Matlab? In Fortran the code is:
do t = 1ntime do j = 1, nequation(t) k = eqindex(t,j) write(1,'(2I,<nx+nfac+1>f16.8)')t,k, beta(t,k,:), Z(t,k,:), H(t,k,k) write(1,'(2I,<nx+nfac+1>f16.8)')t,k,sdbeta(t,k,:),sdZ(t,k,:),sdH(t,k,k) write(1,*) end do write(1,*) end do close(1)
  댓글 수: 2
Jan
Jan 2012년 7월 16일
편집: Jan 2012년 7월 16일
Please follow the "About MATLAB Answers" link to learn, how to format your code. It is hard to decide, if the line breaks are inserted by the forum layout or if they exist in the real source code also.
I find "writef" in the code, but "writeif" in the subject and the tags. I've modified the tag already.
Whenever you post an error message here, copy it completely. Especially the line, which causes the error, is very helpful.
Jan
Jan 2012년 7월 16일
Please, Jessica, learn how to use the "{} Code" button to format code. And please add information required to understand the question by editing the question, not by posting an answer. Thanks.

댓글을 달려면 로그인하십시오.

답변 (2개)

Sean de Wolski
Sean de Wolski 2012년 7월 16일
You are probably looking for fprintf or fwrite.
doc fprintf
doc fwrite

Jan
Jan 2012년 7월 16일
편집: Jan 2012년 7월 16일
Beside that fact, that Matlab does not have a writef function, the expression:
repmat('%16.8f',1,<)
is not valid in Matlab. The "<" is obviously unexpected. What should happen here?
Did you ask the author of the converter already? What did he reply?

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by