Read equations from a text file and create a cell array in MATLAB
Mostrar comentarios más antiguos
Hello everybody! I have a text file with 8000 equations and I want to create a cell array of 8000x1 for the equations as strings. I have considered textscan for this purpose, but all the equations doesn't have same number of variables and hence I cannot specify the number of columns. How do I go about it? Example:
equations.txt:
1. a=b+c
2. d=e+f+g+h
3. y=2+x*z
4 comentarios
Ameer Hamza
el 7 de Mayo de 2018
Do you want to only load them as a string? or to also convert them to function handles?
Tiasa Ghosh
el 7 de Mayo de 2018
Walter Roberson
el 7 de Mayo de 2018
Are the line numbers present in the file? If they are do you want them read in or discarded?
Tiasa Ghosh
el 7 de Mayo de 2018
Respuesta aceptada
Más respuestas (1)
Ameer Hamza
el 7 de Mayo de 2018
Editada: Ameer Hamza
el 7 de Mayo de 2018
The following lines will read the lines from the text file and return a cell array of function handles
f = fopen('test.txt');
q = textscan(f, '%s');
fclose(f);
funHandles = cell(1, length(q{1}));
for i=1:length(q{1})
splitAtEqualSign = strsplit(q{1}{i}, '=');
rhs = splitAtEqualSign{2};
funHandles{i} = matlabFunction(str2sym(rhs));
end
3 comentarios
Tiasa Ghosh
el 7 de Mayo de 2018
Ameer Hamza
el 7 de Mayo de 2018
Editada: Ameer Hamza
el 7 de Mayo de 2018
Then don't run for loop. q{1} contain cell array of strings.
Ameer Hamza
el 7 de Mayo de 2018
Since you mentioned that line numbers are not present. I have updated the answer.
Categorías
Más información sobre Text Files en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!