【问题标题】:What is the reasonable way to display matrix size? [closed]显示矩阵大小的合理方式是什么? [关闭]
【发布时间】:2017-04-19 13:11:23
【问题描述】:

以下条件是可取的:

  • 代码应该是一行
  • 变量名应在代码中尽可能少地重复(最好只重复一次),但要出现在输出中
  • 输出应至少包含前导换行符(最好也是尾随一个)

问题代码:

...
my_variable_name = [1 4];
disp(size(my_varialbe_name));
...

输出:

1 2

理想输出:

...
my_variable_name size: 1 2
...

试过 printf、spritf、disp 但都失败了。

【问题讨论】:

  • fprintf(['Output line1\nmy_variable_name size: ', num2str(size(my_variable_name)),'\nOutput further\n'])
  • 你试过的代码是什么? fprintf 应该可以正常工作,你可能只是使用不正确。

标签: matlab octave


【解决方案1】:

如果您想真正花哨,您可以编写一个匿名函数来执行此操作,因为您可以使用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')

【讨论】:

  • 这正是我想要的!您能否也评论一下为什么人们倾向于在这里使用 frprintf,我认为它是用于文件输出的? printf 也可以。
猜你喜欢
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
  • 2021-10-25
  • 1970-01-01
相关资源
最近更新 更多