Как читать несколько строк по индивидуумам в тексте редактирования со значением max= 5 в matlab?

StackOverflow https://stackoverflow.com//questions/9695129

Вопрос

У меня в моем графическом графическом поле для редактирования текстового поля, которое принимает несколько строк с максимальным значением 5, и я не могу найти способ отображения матрицы с входными значениями ... что-то подобное:

m=[m(1) m(2) m(3) m(4) m(5)];
set(handles.show,'string',m)
.

Как я могу хранить значения в рассчитанном обратном вызове ... когда-нибудь времени, когда я запускаю это, это приносит мне ошибку ..

function masa_Callback(hObject, eventdata, handles)
% hObject    handle to masa (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 %h_edit is the handle to the edit box
m=str2double(get(hObject,'String'));

function calculate_Callback(hObject, eventdata, handles)
% hObject    handle to agregarm (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
f = str2double(get(h_fuerza,'string')); %h_edit is the handle to the edit box

m = str2double(get(h_masa,'string')); %h_edit is the handle to the edit box

[row, column] = size(m);

for i = 1:row 
eval(m{i,:}) %evaluate each line as in MATLAB command prompt
end
.

У меня есть masa_callback, rigidez_callback и fuerza_callback. ... Пытается к отображению, например MATRIX M, он отображает все значения, которые я вводю вместе в пробелах M (1) и M (2) ... Я хочу поставить только каждое разделенное значение, не соединенное вместе! ... Как Могу ли я исправить это, я верю, что это с массивом и петлей, но я не знаю, как и как пройти значения массива в уравнение для выполнения операций (как цифры) и отображать его как строку

Это было полезно?

Решение

Чтобы исправить проблему с входом (при условии, что у вас есть данные в некотором массиве клеток, и что handles.show относится к текстовой коробке), используйте strvcat:

someCellArray = {'a','b'};
m = strvcat(someCellArray{:});
set(handles.show,'string',m)
.

Ваша проблема связана с линии

m = str2double(get(h_masa,'string'));

Вы не хотите преобразовать строку в двойную.

Поскольку свойство String фактически возвращает многослойную строку, вы должны изменять такой код:

m = get(h_masa,'String');

nRows = size(m,1);

for iRow = 1:nRows
eval(m(i,:));
end
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top