converting symbolic to string and printing to a file without 'piecewise' expression

I am attempting to print a symbolic expression to a file as a string. This piece of code worked correctly for me and then for some unknown reason didn't:
fprintf(fid,'''%s'';\n\n',char(C(i,j,2)));
By working correctly i mean that it printed out without a 'piecewise' in front of it...Does anyone know why its all of a sudden printing the output as 'piecewise'.
Thanks

Answers (1)

What does disp(C) show you ? If there is a conditional portion to the expression, it should show you piecewise(). Unless, that is, you want the formatted multi-line version that shows one case per line.
Possibly evalc(C(i,j,2)) would be useful for you

3 Comments

that's the thing is that there shouldn't be....disp(C) has the piecewise in it too....so what i'm actually doing is printing a large symbolic matrix to a file as a string so i can use eval....its really weird because it didn't do this before, the elements of the symbolic matrix are simply expressions (albeit complicated ones) so i'm not sure why it would be interpreted as piecewise.
i guess i must have absentmindedly changed the file that computes and prints C, thats the only explanation....
If you are printing a large symbolic matrix to a file so that you can use eval(), then you should consider instead using matlabFunction() to convert the matrix to a function handle or to write the function body to a file.

Sign in to comment.

Tags

Asked:

on 25 May 2011

Community Treasure Hunt

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

Start Hunting!