Арифметическая задача с циклом for в руководстве MATLAB - PullRequest
0 голосов
/ 22 мая 2019

Я новичок в MATLAB.Я хотел бы использовать эту формулу для цикла: ℓ? = taper1 * ℓ? − 1 Нет сообщения об ошибке, но я не могу увидеть правильное значение на выходе.(Я контролирую свои значения с помощью калькуляторных программ) (Я проверил свои переменные. И подтвердил, что они верны перед этим циклом).И моя вторая проблема - я не знаю, как добавить новую строку с каждым шагом.Вот моя попытка:

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',l(i) );
end

Я пытался добавить новую строку с этим, но не работал

set(handles.popupmenu3,'String',l(i) \n );

1 Ответ

0 голосов
/ 23 мая 2019

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

Результат

...