【问题标题】:MATLAB GUI error when filling textboxes with data from file用文件中的数据填充文本框时出现 MATLAB GUI 错误
【发布时间】:2014-04-18 17:48:25
【问题描述】:

我正在编写一个 MATLAB GUI 程序,其中放入文本框中的数据存储在 .dat 文件中。当程序重新加载时,文本框从文件中获取数据(这样用户就不必每次都重新输入他的信息)。这部分代码将数据保存到 .dat 文件中:

fid = fopen('textboxdata.dat', 'wt');
fprintf(fid, '%s\n', host);
fprintf(fid, '%s\n', username);
fprintf(fid, '%s\n', password);
fclose(fid);

[主机、用户名和密码都是字符串]

这部分代码获取数据并放入文本框:

s = dir('textboxdata.dat');

if s.bytes ~= 0
    fid = fopen('textboxdata.dat', 'rt');
    A = textscan(fid, '%s', 3);
    A = A{1};

    set(handles.hostbox, 'String', A(1))
    set(handles.usernamebox, 'String', A(2))
    set(handles.passwordbox, 'String', A(3))

    fclose(fid); 
end

现在这工作正常,但是当用户尝试使用此数据登录 FTP 服务器时,我收到此错误:

???使用 ==> fprintf 时出错 没有为“单元”输入定义函数。

==> realgui 中的错误>logonbutton_Callback 在 198 fprintf(fid, '%s\n', 主机);

==> gui_mainfcn 中的错误为 96 feval(varargin{:});

==> 42 处的 realgui 中的错误 gui_mainfcn(gui_State, varargin{:});

==> @(hObject,eventdata)realgui('logonbutton_Callback',hObject,eventdata,guidata(hObject)) 中的错误

但奇怪的是,如果你重新输入所有数据,你就可以登录 FTP 服务器就好了!我在这里彻底迷失了。有人知道发生了什么吗?

【问题讨论】:

    标签: matlab user-interface textbox fopen printf


    【解决方案1】:

    A = A{1} 生成一个包含字符串的单元格数组。

    所以当你调用set(handles.hostbox, 'String', A(1)) 时,A(1) 的值实际上是一个单元格,而不是你想要的字符串。

    由于A(1) 是一个包含字符串的单元格,您希望使用A{1} 引用单元格中包含的字符串。

    大括号表示单元格的内容,括号表示单元格及其内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 2011-01-16
      • 2020-01-06
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      相关资源
      最近更新 更多