在MATLAB中将编辑文本输入到矩阵中

在MATLAB中将编辑文本输入到矩阵中,matlab,text,matlab-guide,Matlab,Text,Matlab Guide,我是初学者。我想问,如何将编辑文本放入矩阵?例如,我有30个编辑文本,它们将以数字0-1填充。我想从编辑文本的输入中生成矩阵x1,1,…x1,30 我尝试过以下代码: function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handle

我是初学者。我想问,如何将编辑文本放入矩阵?例如,我有30个编辑文本,它们将以数字0-1填充。我想从编辑文本的输入中生成矩阵x1,1,…x1,30

我尝试过以下代码:

function edit1_Callback(hObject, eventdata, handles)

% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double

x(1, 1) = str2double(get(hObject,'string'))
直到

function edit30_Callback(hObject, eventdata, handles)

% hObject handle to edit30 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit30 as text
% str2double(get(hObject,'String')) returns contents of edit30 as a double

x(1, 30) = str2double(get(hObject,'string'))
但是,命令窗口显示如下

x =

     1

x =

     0 0

x =

     0 0 0

x =

         0 0 0 0.2500

x =

         0 0 0 0 0.5000

x =

     0 0 0 0 0 0
但实际上我想要的结果是矩阵,比如

1 0 0 0.25 0.5 0

有人知道如何解决这个问题吗?

您的问题是功能范围。每个回调函数在自己的作用域中定义x,因此当函数结束在控制台中显示x值时,x将消失


一种方法是使用handles结构在函数之间传递x变量。只需使用handles.x而不是x。我还建议将这个矩阵初始化为handles.x=zeros1,30;在GUI初始化时。

OK..谢谢您的回答。我必须这样尝试,但不起作用。你能给我解释一下编码的细节吗?我真的不知道。是否可以在矩阵中输入编辑文本?