我认为您正在尝试将set 的数值转换为String。
使用:num2str(l(i)) 将l(i) 转换为String。
添加新行,可以使用sprintf,如下:
set(handles.popupmenu3, 'String', sprintf('%f\n', l(i)));
以下代码似乎对我有用:
N = 3;
f1 = 1;
taper1 = 0.5;
l = (1:N); %creating and empty array
l(1)=((3*(10^8))/(2*f1)); %formula
for i = 2:N
l(i) = taper1 * l(i - 1);
%set(handles.popupmenu3, 'String', num2str(l(i)));
set(handles.popupmenu3, 'String', sprintf('%f\n', l(i)));
end
如果您将所有元素的值添加到问题中,这可能会有所帮助。
如果要获取结果列表,请将字符串值添加到 cell array:
添加行尾\n 不是这样做的方法。
popupmenu 中的每一行都是cell array 中的成员。
例如:
S{1} = 'aaa';
S{2} = 'bbb';
S{3} = 'ccc';
set(handles.popupmenu3, 'String', S);
检查以下代码是否有效:
N = 3;
f1 = 1;
taper1 = 0.5;
l = (1:N); %creating and empty array
l(1)=((3*(10^8))/(2*f1)); %formula
for i = 2:N
l(i) = taper1 * l(i - 1);
%set(handles.popupmenu3, 'String', num2str(l(i)));
str = get(handles.popupmenu3, 'String'); %Get older value of popupmenu3
str{end+1} = num2str(l(i)); %Add new string to popupmenu list
set(handles.popupmenu3, 'String', str); %Update popupmenu3
end
Result