Save Sym data per variable
3 views (last 30 days)
Show older comments
mortain Antonio
on 5 Oct 2011
Commented: Nachum Lerner
on 22 Jan 2014
Hello, I have a code which deals with symbolic variables and I have as output a vector whose dimension is known but variable.
The output is symbolic, for example a=[y_1/3+y_2/5 y_1/10+y_2/37]
I would like to save in an ASCII file, not binary, the output and for each row have one element of the vector. The tricky part is the saving in a file, I can do it only in bin, since when I type -ASCII it doesn't do it.
Here I attach a piece of code useful to understand. Thanks for your time.
Antonio
syms a b c x;
results=solve('a*x^2 + b*x + c');
save results.dat results
My output comes as:
results=[-(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a)]
0 Comments
Accepted Answer
Abhishek Gupta
on 5 Oct 2011
One may use DIARY( http://www.mathworks.com/help/releases/R2011b/techdoc/ref/diary.html ) to capture any output to the command window into a text file.
Otherwise, you may convert your symbolic variables into strings and write them into a text file, for instance:
syms a b c x;
results=solve('a*x^2 + b*x + c');
fid = fopen('myfile.txt', 'w');
fwrite(fid, char(results), 'char');
fclose(fid);
Hope this helps.
Abhi...
2 Comments
More Answers (2)
Walter Roberson
on 5 Oct 2011
results = char(solve('a*x^2 + b*x + c'));
3 Comments
Walter Roberson
on 6 Oct 2011
This is not something I can test myself, but I can tell you that that output does not look as expected and documented.
Shahram Alipourazadi
on 22 Oct 2011
To isolate each row you can write:
fid = fopen('myfile.txt', 'w');
for i=1:length(results)
fprintf(fid, '%s\n',char(results(i)));
end
fclose(fid);
Generally first you should convert each argument into string and then using string manipulation functions arrange them
0 Comments
See Also
Categories
Find more on Assumptions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!