gpt4 book ai didi

matlab - 回到 Matlab R2016b 中的旧显示格式

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:23 28 4
gpt4 key购买 nike

在 Matlab R2016b 中,显示某些数据类型的变量会显示有关该类型的信息。当通过不带最终分号键入变量来显示变量时会发生这种情况(使用 disp 函数时不会发生这种情况)。

比较例如:

  • Matlab R2015b(旧格式:仅显示数据):

    >> x = [10 20 30]
    x =
    10 20 30
    >> x = {10 20 30}
    x =
    [10] [20] [30]
    >> x = [false false true]
    x =
    0 0 1
  • Matlab R2016b(新格式:包括类型):

    >> x = [10 20 30]
    x =
    10 20 30
    >> x = {10 20 30}
    x =
    1×3 cell array
    [10] [20] [30]
    >> x = [false false true]
    x =
    1×3 logical array
    0 0 1

如您所见,R2016b 中多了一行来说明类型。显然,对于不是 doublechar 的任何类型都会发生这种情况。

R2016b 中是否有一些设置可以返回到旧行为?

最佳答案

不幸的是,似乎没有人倾向于改变这种行为。有(一如既往)一些棘手的解决方法。

当您从一行中省略分号时,调用的不是 disp 而是 display . R2016b 显然修改了 cell 数据类型的 display 方法,以显示一些类型信息以及值本身。

谢天谢地,我们可以用看起来更像以前版本的 display 的东西重载 display 方法。

我们可以创建一个 @cell 文件夹(在我们路径的任何位置)并在里面放置一个名为 display.m 的文件。

@cell/display.m

function display(obj)
% Overloaded display function for grumpy old men

if strcmpi(get(0, 'FormatSpacing'), 'loose')
fprintf('\n%s =\n\n', inputname(1))
else
fprintf('%s =\n', inputname(1))
end
disp(obj);
end

现在,无论何时由于缺少尾随分号而显示元胞数组,它都不会包含任何类型信息。

>> c = {'a', 'b'}

c =

'a' 'b'

不幸的是,还有其他数据类型(例如 logical)也显示类型信息,因此您必须为这些类中的每一个重载 display 方法。

关于matlab - 回到 Matlab R2016b 中的旧显示格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39828222/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com