Error: Unbalanced or unexpected parenthesis or bracket

The matlab show this error "Error: Unbalanced or unexpected parenthesis or bracket." in this part of the code:
%**************************************
nome = '105.txt';
[pathstr, name, ext] = fileparts(nome);
load(nome);
x=eval([name '(:,1)']);
y=eval([name '(:,2)']);
z=eval([name '(:,3)']);
%*************************************
---------------------------------------------------------------
105.txt contains 3 columns with several rows...
But on my friend's pc don't show this error... I have a Asus x64, with windows 10 and Matlab R2014b...
I think the problem is not from the code as it was functional on other pc's. I think it has to do with my compiler, but I don't know how to fix it ...
Already installed the version Matlab 6.5 R13, but the same error appears ...
What may be the source of this error?

댓글 수: 6

name is a variable or is the file name.txt?
¿Name es una variable o un archivo de texto llamado "name.txt"?, ya que para que no te dé error ahí name debe ser un string
The "name" came from of "[pathstr, name, ext] = fileparts(nome);"
The previous code is:
%********************************************
nome = '105.txt';
[pathstr, name, ext] = fileparts(nome);
load(nome);
x=eval([name '(:,1)']);
y=eval([name '(:,2)']);
z=eval([name '(:,3)']);
%**********************************************
*
105.txt contains 3 columns with several rows...
Adam
Adam 2019년 11월 11일
편집: Adam 2019년 11월 11일
The 2nd output of fileparts is simply a filename. Trying to index into it in that way would be expected to produce an error.
Why not just open the file and read its content in instead of confusing the issue with eval, whose usage is regularly recommended against, for reasons exactly like this?
"I think the problem is not from the code ..."
In fact the problem is very badly designed code that relies on complex eval to generate invalid variable names. That code should be thrown away, it is never going to be reliable or efficient.
So how should I replace the code?
Any suggestion?
Steven Lord showed you.

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

 채택된 답변

madhan ravi
madhan ravi 2019년 11월 11일
I think name is variable, it's simply (there is no need for eval):
x = name(:,1);
y = name(:,2);
z = name(:,3);

댓글 수: 1

The "name" came from of "[pathstr, name, ext] = fileparts(nome);"
The previous code is:
%********************************************
nome = '105.txt';
[pathstr, name, ext] = fileparts(nome);
load(nome);
x=eval([name '(:,1)']);
y=eval([name '(:,2)']);
z=eval([name '(:,3)']);
%***********************************************
105.txt contains 3 columns with several rows...

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

추가 답변 (1개)

카테고리

도움말 센터File Exchange에서 Search Path에 대해 자세히 알아보기

질문:

2019년 11월 11일

댓글:

2019년 11월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by