Read equations from a text file and create a cell array in MATLAB
显示 更早的评论
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 个评论
Ameer Hamza
2018-5-7
Do you want to only load them as a string? or to also convert them to function handles?
Tiasa Ghosh
2018-5-7
Walter Roberson
2018-5-7
Are the line numbers present in the file? If they are do you want them read in or discarded?
Tiasa Ghosh
2018-5-7
采纳的回答
更多回答(1 个)
Ameer Hamza
2018-5-7
编辑:Ameer Hamza
2018-5-7
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 个评论
Tiasa Ghosh
2018-5-7
Ameer Hamza
2018-5-7
编辑:Ameer Hamza
2018-5-7
Then don't run for loop. q{1} contain cell array of strings.
Ameer Hamza
2018-5-7
Since you mentioned that line numbers are not present. I have updated the answer.
类别
在 帮助中心 和 File Exchange 中查找有关 Text Files 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!