显示矩阵大小的合理方法是什么?
What is the reasonable way to display matrix size?
以下条件是可取的:
- 代码应该在一行中
- 变量名应在代码中尽可能少地重复(最好只重复一次),但要出现在输出中
- 输出应至少包含前导换行符(最好也包含尾随换行符)
问题代码:
...
my_variable_name = [1 4];
disp(size(my_varialbe_name));
...
输出:
1 2
理想输出:
...
my_variable_name size: 1 2
...
尝试过 printf、spritf、disp 但都失败了。
如果您想要真正的花哨,您可以编写一个匿名函数来执行此操作,因为您可以使用 inputname
来推断输入变量的名称。
func = @(var)fprintf('\n%s size: %s\n', inputname(1), num2str(size(var)))
x = rand(10, 4);
func(x)
% x size: 10 4
你也可以直接使用fprintf
fprintf('\n%s size: %s\n', 'myvar', num2str(size(myvar)))
或者,如果您不想使用 num2str
,您可以改用多行
fprintf('\n%s size: ', 'myvar')
fprintf('%d ', size(myvar))
fprintf('\n')
以下条件是可取的:
- 代码应该在一行中
- 变量名应在代码中尽可能少地重复(最好只重复一次),但要出现在输出中
- 输出应至少包含前导换行符(最好也包含尾随换行符)
问题代码:
...
my_variable_name = [1 4];
disp(size(my_varialbe_name));
...
输出:
1 2
理想输出:
...
my_variable_name size: 1 2
...
尝试过 printf、spritf、disp 但都失败了。
如果您想要真正的花哨,您可以编写一个匿名函数来执行此操作,因为您可以使用 inputname
来推断输入变量的名称。
func = @(var)fprintf('\n%s size: %s\n', inputname(1), num2str(size(var)))
x = rand(10, 4);
func(x)
% x size: 10 4
你也可以直接使用fprintf
fprintf('\n%s size: %s\n', 'myvar', num2str(size(myvar)))
或者,如果您不想使用 num2str
,您可以改用多行
fprintf('\n%s size: ', 'myvar')
fprintf('%d ', size(myvar))
fprintf('\n')