2012-03-14 2 views
0

Я пытаюсь создать 3D-график в Matlab.Создание 3D-графика в Matlab с двумя изменяющимися переменными

У меня есть очень длинные проблемы, начиная с набором данных Y и Z. С большим манипуляциями она сводится к простому г/г задачам

y=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 
z=[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]; 


x=(y_new)/(z_new) 

Существует около 100 линий уравнений манипулируя у и z, чтобы стать двумя новыми переменными y_new и z_new. Я хотел бы создать 3d-график x, y, z. Я хотел бы получить значение x для (1,5) и (1,10), (2,5), (2,10) и т. Д.

У меня есть проблема с установкой только y = 1 и г = 5. Я пытался использовать for-loops или while-loops в течение последних нескольких часов, но я застреваю.

Если кто-то может мне помочь, я был бы признателен за время и силы!

+0

Я не понимаю, где вы застряли. Все, что вам нужно для элементарной операции, т. Е. 'X = y_new./Z_new'? Или это 'y-new' и' z_new' скаляры, так что вам нужно 'x (i) = y_new/z_new'? – Jonas

+0

Ну, вся проблема выполняется, например, с y = 1 и z = 5. Я получаю значение x. Я просто ищу способ изменить y десять раз, изменить z разное время и получить 100 значений x. – Michael

ответ

1

Вам не нужно использовать петлю for. Вместо этого используйте встроенную функцию meshgrid(), которая предназначена для решения именно этой проблемы.

Here's a tutorial from 'abbe' at MIT, который подробно описывает, как создать 3D-график функции f(x,y) с использованием meshgrid().

Цитирую аннотацию:

3D замышляет

Когда вы делаете 3-мерный участок, обычно имеют переменную г, что является функцией обоих х и у. Если вы хотите, чтобы x и y изменялись в диапазоне от , вам нужна матрица (а не вектор) для x и y, чтобы получить полный домен , который охватывает все различные комбинации этих x и значения y в некотором диапазоне. Функция, называемая meshgrid, установит x и y такие матрицы, как это для вас. Матрица x меняет строки x down и сохраняет их постоянными в столбцах, а y-матрица меняет y в столбцах и сохраняет их постоянными по строкам, поэтому вы получаете все комбинации из x и y, если вы используете две матрицы.

+0

Огромное вам спасибо, это именно то, что я искал! Я видел это несколько часов, но статья была очень запутанной. Часть, которую вы опубликовали, была очень четкой и лаконичной. Еще раз спасибо! – Michael

+0

Не беспокойтесь, приятель. Рад помочь. :) –