Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB:fprintf/sprintf打印字符串+;矩阵_Matlab_Matrix_Vector_Printing_Printf - Fatal编程技术网

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-不客气。还有,请查收