显示没有所有换行符的命令行输出

时间:2017-01-28 13:37:12

标签: matlab

我们只想说我在MATLAB中键入if ( in_array(2, range(1,7)) ) { echo 'Number 2 is in range 1-7'; } 。它给了我这个输出:

2+3

为什么输出会在2个换行符之后出现?我该如何纠正?

理想情况下,我会得到以下输出

>> 2+3

ans =

     5

1 个答案:

答案 0 :(得分:2)

您可以使用format命令更改打印时变量的显示方式。在您的情况下,您可能希望使用'compact'选项

format compact

这将删除所有不必要的换行符。

2+3
% ans=
%    5

不幸的是,没有内置的方法可以在同一行上显示所有内容,因为MATLAB的显示是为了处理多维数据而构建的。如果你真的想要,可以重载display命令。您可以创建一个名为@double的文件夹,然后在该

中创建一个名为display的函数
@double/
    display.m

然后在display.m内你可以做这样的事情

function display(x)
    % If it's a scalar, then show it all on one line
    if isscalar(x)
        fprintf('%s = %g\n', inputname(1), x);
    else
        % Otherwise use the built-in display command
        builtin('display', x)
    end
end

然后,当您拥有double变量

时,它将自动使用
>> 2 + 3
% ans = 5

如果您想重载其他类型数据(uint16int8uint8)的显示,则需要执行相同操作除了将副本放在他们的@文件夹中之外。