MATLAB:fprintf/sprintf打印字符串+;矩阵
我想知道,是否可以打印一个字符串,后跟一个矩阵,以经典形式编写,例如:MATLAB:fprintf/sprintf打印字符串+;矩阵,matlab,matrix,vector,printing,printf,Matlab,Matrix,Vector,Printing,Printf,我想知道,是否可以打印一个字符串,后跟一个矩阵,以经典形式编写,例如: 5 5 9 >>your matrix is M = 1 4 2 2 1 3 使用fprintf/sprintf如果矩阵不必与文本在同一行,您可以做一些简单的事情,比如替换的输出中包含\n: 但是,如果您希望将它们放在同一行上,我看到的唯一方法是计算每个“非介绍”行上所需的制表符(\t)或空格的数量,大致如下所示: A=[1
5 5 9
>>your matrix is M = 1 4 2
2 1 3
使用
fprintf
/sprintf
如果矩阵不必与文本在同一行,您可以做一些简单的事情,比如替换代码>的输出中包含\n
:
但是,如果您希望将它们放在同一行上,我看到的唯一方法是计算每个“非介绍”行上所需的制表符(\t
)或空格的数量,大致如下所示:
A=[1 2 3; 4 5 6; 7 8 9];
intro_str = 'Your matrix is: ';
%// ntabs = ceil(length(intro_str)/3);
%// tab_blanks = cellstr(repmat('\t',size(A,2),ntabs));
spaces = blanks(length(intro_str));
space_blanks = repmat(spaces,size(A,2),1);
mid_row = ceil(size(A,1)/2);
%// tab_blanks(mid_row) = {intro_str};
space_blanks(mid_row,:) = intro_str;
final_str = [space_blanks repmat('%u\t',size(A,1),size(A,2)) repmat('\n',size(A,1),1)]';
final_str = horzcat(final_str(:))';
sprintf(final_str,A(:))
如果您的矩阵不必与文本在同一行,您可以做一些简单的事情,比如替换代码>的输出中包含\n
:
但是,如果您希望将它们放在同一行上,我看到的唯一方法是计算每个“非介绍”行上所需的制表符(\t
)或空格的数量,大致如下所示:
A=[1 2 3; 4 5 6; 7 8 9];
intro_str = 'Your matrix is: ';
%// ntabs = ceil(length(intro_str)/3);
%// tab_blanks = cellstr(repmat('\t',size(A,2),ntabs));
spaces = blanks(length(intro_str));
space_blanks = repmat(spaces,size(A,2),1);
mid_row = ceil(size(A,1)/2);
%// tab_blanks(mid_row) = {intro_str};
space_blanks(mid_row,:) = intro_str;
final_str = [space_blanks repmat('%u\t',size(A,1),size(A,2)) repmat('\n',size(A,1),1)]';
final_str = horzcat(final_str(:))';
sprintf(final_str,A(:))
如果您的矩阵不必与文本在同一行,您可以做一些简单的事情,比如替换代码>的输出中包含\n
:
但是,如果您希望将它们放在同一行上,我看到的唯一方法是计算每个“非介绍”行上所需的制表符(\t
)或空格的数量,大致如下所示:
A=[1 2 3; 4 5 6; 7 8 9];
intro_str = 'Your matrix is: ';
%// ntabs = ceil(length(intro_str)/3);
%// tab_blanks = cellstr(repmat('\t',size(A,2),ntabs));
spaces = blanks(length(intro_str));
space_blanks = repmat(spaces,size(A,2),1);
mid_row = ceil(size(A,1)/2);
%// tab_blanks(mid_row) = {intro_str};
space_blanks(mid_row,:) = intro_str;
final_str = [space_blanks repmat('%u\t',size(A,1),size(A,2)) repmat('\n',size(A,1),1)]';
final_str = horzcat(final_str(:))';
sprintf(final_str,A(:))
如果您的矩阵不必与文本在同一行,您可以做一些简单的事情,比如替换代码>的输出中包含\n
:
但是,如果您希望将它们放在同一行上,我看到的唯一方法是计算每个“非介绍”行上所需的制表符(\t
)或空格的数量,大致如下所示:
A=[1 2 3; 4 5 6; 7 8 9];
intro_str = 'Your matrix is: ';
%// ntabs = ceil(length(intro_str)/3);
%// tab_blanks = cellstr(repmat('\t',size(A,2),ntabs));
spaces = blanks(length(intro_str));
space_blanks = repmat(spaces,size(A,2),1);
mid_row = ceil(size(A,1)/2);
%// tab_blanks(mid_row) = {intro_str};
space_blanks(mid_row,:) = intro_str;
final_str = [space_blanks repmat('%u\t',size(A,1),size(A,2)) repmat('\n',size(A,1),1)]';
final_str = horzcat(final_str(:))';
sprintf(final_str,A(:))
你提出的两个解决方案都会很有用:谢谢你耐心地第二次回答我,@Dev iL:)@user5512412-不客气。另外,请检查您提出的解决方案是否有用:感谢您耐心地第二次回答我,@Dev iL:)@user5512412-不客气。另外,请检查您提出的解决方案是否有用:感谢您耐心地第二次回答我,@Dev iL:)@user5512412-不客气。另外,请检查您提出的解决方案是否有用:感谢您耐心地第二次回答我,@Dev iL:)@user5512412-不客气。还有,请查收