2016-01-12 2 views
0

У меня есть векторы ttre и ttim, которые содержат реальные и мнимые данные по частоте (от 1 до 64). Поля вид:matlab scatter3 plot real и мнимые части по частоте

ttim 64x10100 single 
ttre 64x10100 single 

Я могу легко сделать 2D графика рассеяния определенной строки с помощью команды

scatter(ttim(40,:),ttre(40,:)) 

Теперь я хотел бы, чтобы отобразить все данные в 3D разброса где X = действительные значения, Y = мнимые значения и Z = [1 ... 64] Я создал массив для Z с числом от 1 до 64 и скопировал его, чтобы сделать его того же размера, что и другие переменные, посредством:

z=(1:64)' 
z=repmat(z,1,10100) 

result: 
z  64x10100 double 

Когда я пытаюсь применить график 3D-рассеяния, я получаю сообщение об ошибке «Векторы x, yu, z должны быть одного размера» ... однако, насколько я понимаю, они имеют одинаковый размер.

>> scatter3(ttim,ttre,z) 
Error using scatter3 (line 64) 
X, Y and Z must be vectors of the same length. 

Я надеюсь, что кто-то может указать мне в правильном направлении.

Сердечные приветы

ответ

1

scatter3 потребности точек для построения, так x, y и z должны быть 1xN, где N это количество точек вашего замышляют. Я не знаю, каковы ваши данные, поэтому, к сожалению, я не могу больше помочь. Может быть, scatter3(ttim(:),ttre(:),z(:)) работает, но я не рекомендую его для огромного количества данных, которые у вас есть, это может привести к краху вашего компьютера.

Однако, возможно, z=1:64 не самый лучший вариант. Это означает, что у вас будет 64 слоя (например, полы из здания) разбросанных данных, не уверен, что это то, что вы хотите.

+1

Слова из моих уст. Они делают это в примерах '' scatter3' (http://uk.mathworks.com/help/matlab/ref/scatter3.html#examples) – Steve

+0

Спасибо. Это фактически решило проблему. Вы правы, что количество точек данных слишком велико. Я просто хотел быстро взглянуть на то, что данные верны. Еще раз спасибо. – Yosha

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