【问题标题】:How to display 7 digit numbers in matlab list box如何在matlab列表框中显示7位数字
【发布时间】:2014-12-05 18:00:36
【问题描述】:

我的任务是修复其他人编写的 matlab 程序中的错误,并且在列表框中显示 7 位序列号时遇到问题。我从数据库中获取数字并提取数字,但不是在列表框控件中显示序列号 4800801,而是以科学计数法显示。

这里是代码

statement = 'select product_serial_number from master_product where status = 109 order by product_serial_number ASC';
curs = exec(conn, statement);
curs = fetch(curs);

if strcmp(curs.Data,'No Data') == 0
    handles.matrix(1:length(cell2mat(curs.Data)),1) = cell2mat(curs.Data);
end

handles.BasePre2Data = curs.Data;
set(handles.ListBasePreBuild2,'String',handles.BasePre2Data);
r = cellfun(@isnumeric, curs.Data);

if mean(r) == 1
    set(handles.TextBoxBasePreBuild2Total,'String',num2str(length(handles.BasePre2Data)));
else
    set(handles.TextBoxBasePreBuild2Total,'String','0');
    handles.BasePre2Data = [];

end

我是 matlab 新手,所以我不确定如何将输出格式化为所有 7 位数字。

【问题讨论】:

  • 我不知道您的代码中的哪个数字有问题。如果你使用 sprintf('%.0f',YourNumberHere) 会怎样?
  • 我不熟悉 MATLAB 中的列表框。如果您有一些矩阵M 想要读取为整数而不是浮点数/科学记数法,您可以使用M_integer = cast(M,'uint32')。我不确定您会在代码中的哪个位置应用它。哪个变量代表序列号?

标签: matlab


【解决方案1】:

我想通了,我必须使用 cellfun 并将格式更改为 num2str

set(handles.ListBasePreBuild2,'String',cellfun(@num2str,handles.BasePre2Data,'UniformOutput',false));

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    相关资源
    最近更新 更多