Я думаю, что вы пытаетесь 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
Результат