Как мне выполнить операторы для зависимой переменной графа в MATLAB? - PullRequest
0 голосов
/ 05 декабря 2010

Я хотел бы знать, как получить определенное число из интервала, чтобы проверить его, а затем иметь возможность строить различные функции под одним графиком. Например (в данном случае переменная 'x'),

 x 0:.5:5;

 Ids=ones(x);
 figure;hold on;

 for n = 1:5
     if(x < 3.0) %problem here
         Ids(n) = plot(x,x.^x);
     else 
         if (x > 4.0)  %and here
            Ids(n) = plot(x,-x.^x);
         end
     end
 end

EDIT

Что я действительно хочу сделать в MATLAB, так это уметь выполнять следующую кусочную функцию:

y(x) = {  0                   (t - 5) < 0
       { (t - 5)*(t - x)      x < (t - 5)
       { (t + x^2)            x >= (t - 5)

Кажется, я не понимаю, как построить график этой функции с x = 0:.5:10 и t = 0:.1:10. Я знаю, как это сделать без t, но я теряюсь, когда t включен и имеет другие интервалы по сравнению с x.

Ответы [ 2 ]

1 голос
/ 06 декабря 2010

Из вашего кода немного неясно, что вы пытаетесь сделать, но кажется, что вы хотите создать и построить функцию f(x), которая имеет следующий вид:

f(x) = [ x     for 3 <= x <= 4
       [ x^x   for x < 3
       [ -x^x  for x > 4

Если эточто вы хотите сделать, вы можете сделать следующее, используя логическое индексирование :

x = 0:0.5:5;  %# 11 points spaced from 0 to 5 in steps of 0.5
y = x;        %# Initialize y
index = x < 3;                   %# Get a logical index of points less than 3
y(index) = x(index).^x(index);   %# Change the indexed points
index = x > 4;                   %# Get a logical index of points greater then 4
y(index) = -x(index).^x(index);  %# Change the indexed points
plot(x,y);                       %# Plot y versus x
1 голос
/ 05 декабря 2010

Возможно, вы ищете кусочные полиномы: http://www.mathworks.com/help/techdoc/ref/mkpp.html

В противном случае я бы предложил сделать два вектора, так сказать, «x» и «y», и заполнить y, перебирая x и применяя ваши условия и результаты, а затем построить y против x. Это позволит избежать необходимости удерживать сюжет.

Если вы хотите анимировать рисунок, добавьте plot () в цикл for, а затем «drawnow». Прошло много времени с тех пор, как мне пришлось анимировать сюжеты, поэтому я бы предложил учебники по рисованию и анимации.

...