我在我的gui中,一个编辑文本字段,它接受具有最大值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我尝试读取编辑文本框中的用户输入...所以我想将这些值传递给compulate_callback作为数组,根据n的值执行某些操作。 ..我得到的错误是,当例如n= 2时,我在masa_callback列和fuerza_callback中添加两个值,并且rigidez_callback中的3个值,这些值将传递给案例n== 2,并且当我的程序时尝试显示例如矩阵M,它显示我在M(1)和M(2)的空间中输入的所有值......我想仅放置每个分离的值,而不是一起连接在一起!......如何我可以解决这个问题,我相信这是一个阵列和一个循环,但我不知道如何将数组值传递给等式以执行操作(AS Numbers)并将其显示为字符串

有帮助吗?

解决方案

要解决输入问题(假设您在某些单元格阵列中具有您的数据,并且该生成码etagcode指的是文本框),请使用handles.show

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

你的问题源于

strvcat

您不想将字符串转换为双倍。

由于世代odicetagcode属性实际上返回一个多行字符串,因此您必须修改这样的代码:

m = get(h_masa,'String');

nRows = size(m,1);

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top