Ввод текста редактирования в матрицу в MATLAB

Я новичок. Я хочу спросить, как поместить редактировать текст в матрицу? Например, у меня есть 30 редактируемых текстов, которые будут заполняться цифрами от 0 до 1. Я хочу сделать матрицу x(1,1),....x(1,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

кто-нибудь знает, как решить эту проблему?


person winda pradina    schedule 05.03.2012    source источник


Ответы (1)


Ваша проблема заключается в области видимости функции. Каждая функция обратного вызова определяет x в своей области, поэтому, когда функция завершится (отображение значения x в консоли), x исчезнет.

Один из способов — передать переменную x между функциями, используя структуру handles. Просто используйте handles.x вместо x. Я бы также рекомендовал инициализировать эту матрицу как handles.x = zeros(1,30); при инициализации GUI.

person yuk    schedule 05.03.2012
comment
окей .. спасибо за ваш ответ. Я должен попробовать так, но это не работает. Можете ли вы объяснить мне более подробно о кодировании? Я действительно понятия не имею об этом. можно ли поместить редактирование ввода текста в матрицу? - person winda pradina; 05.03.2012