使用文件中的数据填充文本框时出现MATLAB GUI错误

时间:2014-04-18 17:48:25

标签: matlab user-interface textbox fopen printf

我正在编写一个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 at 198 fprintf(fid,'%s \ n',主持人);

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

因此,当您调用set(handles.hostbox, 'String', A(1))时,A(1)的值实际上是一个单元格,而不是您希望的字符串。

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

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