How do I print a mixed expression ( numeric and symbolic) to a file?

1 回表示 (過去 30 日間)
Jonathan Dentch
Jonathan Dentch 2014 年 3 月 27 日
回答済み: Star Strider 2014 年 3 月 28 日
Example: 3.21 - x
  2 件のコメント
Star Strider
Star Strider 2014 年 3 月 28 日
How do you generate your expressions? Symbolic Math Toolbox? Something else?
Jonathan Dentch
Jonathan Dentch 2014 年 3 月 28 日
A = [1,2;3,4];
// Greek letter xi
xi = sym('xi');
B = [xi,0;0,xi];
C = A - B;
fprintf(fid,C(:,:));

サインインしてコメントする。

回答 (3 件)

Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh 2014 年 3 月 27 日
You can use sprintf or easier way is to concatnate strins
myString=sprintf();
fprintf(myFile,myString);
or
fprintf(myFile,[num2str(myNumber),' - x']);
and then write the 'mySring' to a file.
I personally never used sprintf , so for furter details abou sprintf refer to MALAB help
doc sprintf
Good Luck!
  1 件のコメント
Jonathan Dentch
Jonathan Dentch 2014 年 3 月 27 日
How do I print a mixed expression in general ? The expression might contain several numerics and several symbolics in any order.

サインインしてコメントする。


Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh 2014 年 3 月 28 日
The only way that I know of is to concatnate just as I showed u! I edited a whole bunch of text files like this.
I don't think if there would be another way around. Just to make it more automatic you may put your strins in a cell array, and also the digits, and use a for loop to do it easier!
names={'Alex','Sam','Max','Sala','Tom','Tim'};
examResult=(20 10 4 13 5 0);
for i= 1:lenght(examResult)
fprintf(myFile,[names(i),'''s exam result=',num2str(i)]);
end
output
Alex's exam result= 20
Sory if it is difficult, sometime I'm looking for super easy ways that does not exits. I don't think if an specific way would exis for you.
  1 件のコメント
Jonathan Dentch
Jonathan Dentch 2014 年 3 月 28 日
Thanks for your help, Salaheddin. However, I do not know the exact composition of the mixed expression (i.e., one numeric followed by an operator followed by one symbolic). Your example contains no symbolics. MATLAB is able to print a mixed expression to the command window. Surely, there must be a way to print the same expression to a file.
A = [1,2;3,4]; xi = sym('xi'); // Greek letter xi B = [xi,0;0,xi]; C = A - B; fprintf(fid,C(:,:));

サインインしてコメントする。


Star Strider
Star Strider 2014 年 3 月 28 日
The only MATLAB functions I can find that deal with unicode characters are unicode2native (and native2unicode that may not apply to what you are doing but has a link at the end of the unicode2native page).
Consider this for a start, and experiment:
bytes = unicode2native('Ξ ξ')

カテゴリ

Help Center および File ExchangeLabels and Annotations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by