Графики функций при изменении одного параметра - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть функция Matlab, и я хочу отобразить ее при изменении определенного параметра от 100 до 1000, она выглядит следующим образом: [c, errorrange, i] = function [g1, g2, x]; Я хочу построить график x и c при изменении x

Сама функция ...............

  function [root,e, i]=func(xl,xu,e_stopping, z)
    if ((((xl^4)/(20*z)-(3*z^2*xl^2)/50)*((xu^4)/(20*z)-(3*z^2*xu^2)/50)) > 0) 
        error('the intials wont work');
    end
    root = z/2+z*2;
    e = 2;
    i = 2;
    end

..... ..........

Я думал примерно так:

...

for i = 100: 1000
[c, error] = fund(1000, 2000,0, i);
A(i) = c;
end
for i = 1: 99
A(i) = 0;
end
plot(A); 

... но это не сработает ; извините, если мой вопрос не очень хороший, я новичок в Matlab. Спасибо

1 Ответ

0 голосов
/ 06 апреля 2020

Ваш вопрос неясен, потому что переменные, которые вы хотите построить, не определены в вашем коде. Хотя не имеет значения, как вы их называете в своей функции (как вы говорите в своих комментариях), если вы не совсем ясны в своем вопросе, мы должны догадаться, что i = x, или A = x, или что вы хотели .

Я все еще не уверен, что именно вы хотите построить, но это должно быть достаточно близко, чтобы начать. По сути, похоже, что вам не нужны циклы for, вам просто нужно передать векторный ввод в вашу функцию.

A = 1:1:100; % create this vector however you need
[c, error] = func(1000, 2000, 0, A);

plot(A, c)
xlabel('my input A', 'FontSize', 10)
ylabel('my function output c', 'FontSize', 10)
title("my graph", 'FontSize', 12)



function [root, e, i] = func(xl, xu, e_stopping, z)
    root = z/2 + z*2;
    e = 2;
    i = 2;
end

enter image description here

...