一种可能性是重载该display
函数,当您输入一个不以 . 结尾的表达式时,该函数会自动调用;
。例如,如果您将以下函数放在 MATLAB 路径中任何位置的名为“@double”的文件夹中,则数组的默认display
行为将被覆盖double
(这是基于Mohsen Nosratinia 的 display.m用于显示矩阵维度):
% @double/display.m
function display(v)
% DISPLAY Display a variable, limiting the number of elements shown.
name = inputname(1);
if isempty(name)
name = 'ans';
end
maxElementsShown = 500;
newlines = repmat('\n',1,~strcmp(get(0,'FormatSpacing'),'compact'));
if numel(v)>maxElementsShown,
warning('display:varTooLong','Data not displayed because of length.');
% OR show the first N=maxElementsShown elements
% builtin('disp', v(1:maxElementsShown));
elseif numel(v)>0,
fprintf([newlines '%s = \n' newlines], name);
builtin('disp', v);
end
end
例如,
>> xx=1:10
xx =
1 2 3 4 5 6 7 8 9 10
>> xx=1:1e4
Warning: Data not displayed because of length.
> In double.display at 17
编辑:更新尊重'compact'
和'loose'
输出格式偏好。
编辑 2:防止disp
放置一个空数组。这使得whos
和其他命令避免了不必要的display
.