2013-05-15 1 views
0

У меня есть задача вычислить некоторую функцию f (x), в которой x принадлежит [-4,4] диапазону и h = 0,5., объявив, что значение принадлежит некоторому диапазону в matlab

Сначала я попытался написать x = rand * (4 - (- 4)) + (- 4)), но затем я догадался, что делаю неправильно, и мне нужен вектор, поэтому я написал следующее: A = -4: 0,5: 4; Я получил вектор A с диапазоном [-4,4] и h = 0,5, но я не знаю, как написать, что x∈A

Любые идеи?

Редактировать: Извините, если мой вопрос вас смутил. Я не носитель языка, и иногда мне трудно переводить то, что я пытаюсь сделать.

Чтобы уточнить, я была задана функция

x∈ [-4, 4] и H = 0,5

Я сделал это:

A=-4:0.5:4; 

//Here I want to write that x is from A range (x∈A) and I don't know how. 

if x>2 
    disp (x^2+7); 
elseif x>-3 && x<2 
    disp (3*sin(x)+e^x); 
elseif x<=-3 
    disp ((x^2)/(3*cos(x)-2)); 
end; 
+2

Объявление о том, что значение принадлежит некоторому диапазону, ничего для меня не значит. Вы хотите, чтобы вы сгенерировали вектор так, чтобы его значения находились в определенном диапазоне или вы хотите проверить, все ли значения вектора находятся в определенном диапазоне? –

+0

Добро пожаловать в stackoverflow. Не могли бы вы изменить свой вопрос, чтобы уточнить, что вы имеете в виду? – Memming

+0

Я думаю (исправьте меня, если я ошибаюсь), что он спрашивает: у него есть диапазон 'A' и ступенчатая функция' f (x) '. Теперь он хочет сгенерировать вектор «x» (который либо содержит несколько значений, либо 1 значение ...?), Который содержит значения в пределах диапазона «A». Это верно? –

ответ

1

использование векторизации

h = 0.5; 
x = linspace(-4, 4, h); % equally spaced x 
fx = (x > 2).*(x.^2 + 7) + ... 
    (x <= 2 & x > -3) .* (3 *sin(x) + exp(x)) + ... 
    (x <= -3) .* ((x.^2) ./ (3 * cos(x) -2)); 
figure; 
plot(x, fx); title('f(x)'); 
+0

Спасибо, но я думаю, что ваш код слишком сложный для меня. Я начинаю, и я не могу понять больше половины его синтаксиса. Прости. – mishonacro

+1

Что делает @ user2379182: Сделать 'x', так что это вектор значений от -4 до 4, равномерно расположенный на' h'. Затем 'x', который теперь охватывает диапазон' A', с разделением 'h', подается в * f (x) *, который определяется' fx'. Используя логику ('x> 2' и т. Д.), Вам не нужен if-loop. Затем результат наносится. –

 Смежные вопросы

  • Нет связанных вопросов^_^