matlab 数字显示完整,如何在matlab中同时显示字符串和数字?

狭隘地说你的问题,只是把数字转换成单元格。您将拥有一个数组编辑器可以处理的变量。

X = [ S num2cell(N) ];

更广泛地说,这里有一个面向数组的sprintf变体,它对于显示由并行数组构造的记录很有用。你可以这样称呼它。我经常用这种方法显示表格数据。

sprintf2('%-*s %8g', max(cellfun('prodofsize',S)), S, N)

功能如下。

function out = sprintf2(fmt, varargin)

%SPRINTF2 Quasi-"vectorized" sprintf

%

% out = sprintf2(fmt, varargin)

%

% Like sprintf, but takes arrays of arguments and returns cellstr. This

% lets you do formatted output on nonscalar arrays.

%

% Example:

% food = {'wine','cheese','fancy bread'};

% price = [10 6.38 8.5];

% sprintf2('%-12s %6.2f', food, price)

% % Fancier formatting with width detection

% sprintf2('%-*s %6.2f', max(cellfun('prodofsize',food)), food, price)

[args,n] = promote(varargin);

out = cell(n,1);

for i = 1:n

argsi = grab(args, i);

out{i} = sprintf(fmt, argsi{:});

end

% Convenience HACK for display to command line

if nargout == 0

disp(char(out));

clear out;

end

function [args,n] = promote(args)

%PROMOTE Munge inputs to get cellstrs

for i = 1:numel(args)

if ischar(args{i})

args{i} = cellstr(args{i});

end

end

n = cellfun('prodofsize', args);

if numel(unique(n(n > 1))) > 1

error('Inconsistent lengths in nonscalar inputs');

end

n = max(n);

function out = grab(args, k)

%GRAB Get the kth element of each arg, popping out cells

for i = 1:numel(args)

if isscalar(args{i})

% "Scalar expansion" case

if iscell(args{i})

out{i} = args{i}{1};

else

out{i} = args{i};

end

else

% General case - kth element of array

if iscell(args{i})

out{i} = args{i}{k};

else

out{i} = args{i}(k);

end

end

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值