2016-01-28 2 views
0

У меня есть три файла в Matlab:Pass строковые значения из текстового поля в коде

  1. mygui.fig
  2. mygui.m
  3. mycode.m

Как названия предлагают, то первые две сделки с простыми пользовательский интерфейс и последнее, где происходит моя обработка.

Я создал mygui.fig с помощью GUIDE и это выглядит следующим образом:

enter image description here

Когда я ударил бежать, я хочу, чтобы два параметра из интерфейса должны быть переданы mycode.m.

я в настоящее время этот код в mygui.m который захватывает данные из текстовых полей:

function btnRun_Callback(hObject, eventdata, handles) 
    strPathTrain = get(handles.txtPathTrain,'String'); 
    strPathTest = get(handles.txtPathTest,'String'); 

mycode.m выглядит следующим образом:

Trainset = 'C:\Users\blah1'; 
Testset = 'C:\Users\blah2'; 
... 

Как я могу позвонить и передать эти значения mycode.m?

ответ

2

Вы можете перенести данные между ними с помощью ручек, попробуйте this.

Например, в коде формы:

handles.k.tr = get(handles.txtTr,'String'); 
handles.k.te = get(handles.txtTe,'String'); 
guidata(hObject, handles); 
somefunction(handles.k); 

Функция:

function [ output_args ] = somefunction(k) 
    fprintf('tain=%s', k.tr); 
    output_args = 0; 
end 
+0

Я привязал дескрипторы к 'mygui.m', но как я могу получить эти значения из своей функции в' mycode.m'. Прямо сейчас, 'mycode.m' не знает, что есть другой файл, кроме того, что они находятся в одной папке. Кажется, я что-то упускаю. –

+0

Вы видели ссылку? Все еще борется? – kAmol

+0

Я решил. Благодарю. –

1

Вы можете создать глобальную структуру для хранения всех пользовательских входов в mygui.m и использовать их в других функциях. В качестве альтернативы вы также можете записать значение в файл внутри функции и прочитать файл в другом месте.

+0

Спасибо, я новичок в Matlab, так я могу это задается вопрос есть стандартные способы передачи значений в Matlab, или вы бы назвали это взломом? –

Смежные вопросы