如何在MATLAB中的MAX= 5的值中的编辑文本中的个人读取多行?
-
13-12-2019 - |
题
我在我的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
. 不隶属于 StackOverflow