I’m going to read some function from a Unicode text file in matlab and calculate there answer with my own variables. first i use fopen to read the text file, then what should i do to convert each line of that text file to a function? for example the func.txt contains:
(x^2)-3y sin(x+z)+(y^6)
and i need to write an m.file which read func.txt and process that like this:
function func1[x,y] = (x^2)-3y
function func2[x,y,z] = sin(x+z)+(y^6)
Preamble: if your final aim is to use those functions in matlab (i.e. evaluate them for some values of
x,y,...), I would rather suggest the following approach that looks more robust to me.In principle, in fact, you don’t need to manipulate the file
funct.txtto evaluate the functions defined therein.First problem: each line of your file
funct.txtmust define an inline function.Say that the first function (i.e., the first line) of the file
funct.txthas been copied into a stringstr,you can obtain a function from it using the command
inline:which gives to you (matlab output)
Now you can use
f1just calling it asf1(x,y), for whatever valuesx,y.Second problem: you have to parse your file
funct.txtto obtain the stringsstrcontaining the definitions of your functions. That’s easier, you may want to consider the functionfgets.Third problem: the functions in
funct.txtmay depend on 2,3 (or more?) independent variables. As far as I know there is no easy way to parse the string to discover it. Thus, you may want to define each inline function as depending on all your independent variables, i.e.the variable
zwill play no active role, by the way. Nonetheless, you need to specify a third dummy parameter when you callf1.