MATLAB 在同一行的数字之间创建恒定间距
MATLAB create constant spacing between numbers on same line
早上好,
我确定有一个内置函数,但我找不到它。我想为发送到 MATLAB 文本文档的信息创建静态定位。例如:
height weight age favorite number
------------------------------------------------------------
60 140 24 9
30 45 3 10000000
48 100 9 19
9 7 1 1
目前,我只是用填充空格进行 fprint 调用以使其对齐,但问题出现在具有不同长度数字导致对齐关闭的情况下,如下所示:
height weight age favorite number
------------------------------------------------------------
60 140 24 9
30 45 3 10000000
48 100 9 19
1 7 1 1
提前致谢。
这里有一个示例脚本,可以说明我的意思:
fid1 = fopen('Whosebugtest', 'w');
if fid1 < 3,
error('ERROR');
end;
fprintf(fid1, 'height weight age favorite number \n');
fprintf(fid1, '------------------------------------------------------------ \n');
height = 0;
weight = 10;
age = 100;
number = 3;
for i = 1:100
fprintf(fid1, "%d ', height);
fprintf(fid1, "%d ', weight);
fprintf(fid1, "%d ', age);
fprintf(fid1, "%d \n", number);
height = height + 3;
weight = weight + 6;
age = age - 1;
number = number + 23;
end
您可以使用 fprintf
format specification 执行此操作,例如 %-15d
。
这里,-
是一个标志,指定左对齐,15
指定在表示周围留下多少space。
我们可以用
重现你的例子
A = [60 140 24 9
30 45 3 10000000
48 100 9 19
9 7 1 1];
fprintf('height weight age favorite number \n'),...
fprintf('------------------------------------------------------------ \n'),...
fprintf('%-15d %-15d %-12d %-15d \n',A')
其中显示
height weight age favorite number
------------------------------------------------------------
60 140 24 9
30 45 3 10000000
48 100 9 19
9 7 1 1
编辑: 您可以将此数据存储为 table
:
height = A(:,1)
weight = A(:,2);
age = A(:,3);
favourite_number = A(:,4);
tab1 = table(height, weight, age, favourite_number);
disp(tab1);
这将打印到屏幕
height weight age favourite_number
______ ______ ___ ________________
60 140 24 9
30 45 3 1e+07
48 100 9 19
9 7 1 1
但我不确定如何将此表示保存到文件中。
早上好,
我确定有一个内置函数,但我找不到它。我想为发送到 MATLAB 文本文档的信息创建静态定位。例如:
height weight age favorite number
------------------------------------------------------------
60 140 24 9
30 45 3 10000000
48 100 9 19
9 7 1 1
目前,我只是用填充空格进行 fprint 调用以使其对齐,但问题出现在具有不同长度数字导致对齐关闭的情况下,如下所示:
height weight age favorite number
------------------------------------------------------------
60 140 24 9
30 45 3 10000000
48 100 9 19
1 7 1 1
提前致谢。
这里有一个示例脚本,可以说明我的意思:
fid1 = fopen('Whosebugtest', 'w');
if fid1 < 3,
error('ERROR');
end;
fprintf(fid1, 'height weight age favorite number \n');
fprintf(fid1, '------------------------------------------------------------ \n');
height = 0;
weight = 10;
age = 100;
number = 3;
for i = 1:100
fprintf(fid1, "%d ', height);
fprintf(fid1, "%d ', weight);
fprintf(fid1, "%d ', age);
fprintf(fid1, "%d \n", number);
height = height + 3;
weight = weight + 6;
age = age - 1;
number = number + 23;
end
您可以使用 fprintf
format specification 执行此操作,例如 %-15d
。
这里,-
是一个标志,指定左对齐,15
指定在表示周围留下多少space。
我们可以用
重现你的例子A = [60 140 24 9
30 45 3 10000000
48 100 9 19
9 7 1 1];
fprintf('height weight age favorite number \n'),...
fprintf('------------------------------------------------------------ \n'),...
fprintf('%-15d %-15d %-12d %-15d \n',A')
其中显示
height weight age favorite number
------------------------------------------------------------
60 140 24 9
30 45 3 10000000
48 100 9 19
9 7 1 1
编辑: 您可以将此数据存储为 table
:
height = A(:,1)
weight = A(:,2);
age = A(:,3);
favourite_number = A(:,4);
tab1 = table(height, weight, age, favourite_number);
disp(tab1);
这将打印到屏幕
height weight age favourite_number
______ ______ ___ ________________
60 140 24 9
30 45 3 1e+07
48 100 9 19
9 7 1 1
但我不确定如何将此表示保存到文件中。