matlab如何输出多行字符串并且写入文档

例如str=['qinghua university'
'peiking university']
fprintf(fid,'\n*example6-2\nstr=\n');
fprintf(fid,'%s\n',str);
但是输出却是
*example6-2
str=
qpienigkhiunag uunniivveerrssiittyy

求解

第1个回答  2012-10-17
问题出在fprint是将整个array从上往下从左往右一个个字符输出,你的str本质上就是个2x18的矩阵,每个字母是一个元素,所以在fprintf之后按照访问顺序会输出”qpienigkhiunag uunniivveerrssiittyy“,你可以在输出的时候给str加个‘进行转制,结果不会出现之前的那种乱序,不过却不能换行

以下是可以正常输出的代码,采用for循环历遍str的每一行:
str=['qinghua university'
'peiking university'];
leng = size(str);
fprintf(fid,'\n*example6-2\nstr=\n');
for i=1:leng(1)
fprintf(fid,'%s\n',str(i,:));
end本回答被网友采纳
第2个回答  2012-10-17
使用 textread命令,你可以在matlab中doc textread就会出现帮助了追问

    因为刚学matlba,看不大懂,可以再详细点吗

追答

你直接在matlab中输入help textread出来的解释是最详细的噻

第3个回答  2012-10-17
问题出在fprint是将整个array从上往下从左往右一个个字符输出,你的str本质上就是个2x18的矩阵,每个字母是一个元素,所以在fprintf之后按照访问顺序会输出”qpienigkhiunag uunniivveerrssiittyy“,你可以在输出的时候给str加个‘进行转制,结果不会出现之前的那种乱序,不过却不能换行

以下是可以正常输出的代码,采用for循环历遍str的每一行:
str=['qinghua university'
'peiking university'];
leng = size(str);
fprintf(fid,'\n*example6-2\nstr=\n');
for i=1:leng(1)
fprintf(fid,'%s\n',str(i,:));
end本回答被网友采纳
第4个回答  2012-10-17
使用 textread命令,你可以在matlab中doc textread就会出现帮助了追问

    因为刚学matlba,看不大懂,可以再详细点吗

追答

你直接在matlab中输入help textread出来的解释是最详细的噻

相似回答
大家正在搜