2012-03-31 9 views
7

色が4番目の変数を表す3Dサーフェスを作成する必要があります。私は "サーフ"が私の必要とするものと同じだと知っていますが、それはそれほど大したことではありません。MATLAB:4Dプロットを作成する必要があります(3D + Color/Color)

T = [1:M]

Y = [1:n]は

= [1:O]

これら三なければならない基本的に、私は、次の変数を持っていますデカルト座標軸。

また、次元m×n×oの変数Sを有し、基本的に振幅であり、前の3つの変数(すなわち、S = f(t、y、a))の関数である。これを色で表現したい。

要約すると、(t、y、a、S)という形式のグラフが必要です。ここで最初の3つの変数は等しくないサイズのベクトルで、最後の変数は次元が最初の三。

ありがとうございます。

+0

あなたは何をして終わるのですか?あなたの問題を解決するyuk?答えを選択することを忘れないでください:) –

答えて

1

私は、3D空間でのピクセルの色付け/サイジングに常にscatter3を使用してきました。私は署名が次の通りであると信じています:

scatter3(x,y,z, size, color) 

サイズと色は、座標に等しい長さのスカラーまたはベクトルです。私は通常、あなたが表示しているものに応じて、4番目の属性を反映するために、色またはサイズのいずれかを使用します。私はこのマシンにMatlabを持っていないので、私の記憶が使い方について完全に正確でない場合、私を許してください。 "助け散漫3"ははるかに良い記述する必要があります。

+0

ありがとう、私はこれもMATLABフォーラムで提案しました。私はそれを調べます。 しかし、私の場合、サイズ変数はどうしたらよいですか?私は心配していませんが、私は他の4つに興味があります。 – Mike

+0

私は空間で分離された一連の時間領域信号を持っており、それらを連続ウェーブレット変換してスカログラムを取得しています。したがって、私は軸として3つの変数を持っています:時間(t)、空間(x)、およびスケール/周波数(a)、実際のスカログラムそれ自体 - あるいは空間的に異なる分離された信号。長さ76050の スケールで時間がこのようにして、スカログラムの集合は振幅を表す内部の実際の値を用いて、長さ32x76050x4の多次元配列である32 空間は長さ4 の長さです。 かなり混乱しています。 – Mike

+0

私はちょうど考えを考えました。変数をsurfやscatter3Dのような関数に収まるように変数を適切にスケーリングするとどうなりますか?現在、変数は32x76050x4のようです。これらの行に沿って隙間や何かを使用して、私はそれらの男を整列させることができるはずです。 私はこれを試してみましょう。 – Mike

10

SCATTER3は、M系列の単一系列またはNxM行列に対して等しくサイズが決められたNx1ベクトルとなるように、x,yおよびを必要とします。

フル3Dデータがあります。同じサイズの座標ベクトルはMESHGRID(またはNDGRID)を使用する機能を作成するには:それは場合は、完全な空間データscatter3は特別に役立つことはありませんですので、問題がある

scatter3(X(:), Y(:), Z(:), [], S(:)) 

[X, Y, Z] = meshgrid(t, y, a); 

その後、あなたはSCATTER3を使用することができますあなたは多くのポイントを持っています。

おそらくS変数(idx = S > 0のようなもの)をフィルタリングして、フィルタリングされたデータをプロットすることができます。

実際にすべてのデータを視覚化する必要がある場合は、Volume visualizationをMATLABのドキュメントでご覧ください。たとえば、SLICE機能をお勧めします。ここ

EDIT

S = rand([m,n,o]); scatter3(X(:), Y(:), Z(:), [], S(:), 'filled')

scatter example

EDIT 2

有する小さなベクトル( mn、5に等しい o)の完全な3次元空間の散布図の一例です

あなたのコメントからあなたが32x76050x4マトリックスを持っていることが分かった。実際に2Dスライスを1つずつプロットすることができます。 IMAGESC機能を使用して2Dで、またはSLICE機能を使用して3Dで行うことができます。

試行:kが3次元の1から4までの数である

imagesc(S(:,:,k)) 

それとも

slice(S, [], [], 1:size(S,3)) 
shading flat 

slice example

+0

ありがとう、私はこれを試してみましょう!私は結果を得たときに私はあなたを更新します! = D – Mike

+0

できるだけそのように見えるもののスクリーンショットを投稿できますか?私は興味がある。ありがとう! – rutgersmike

+0

何のスクリーンショットですか?散布図?それは完全なスペースであることを覚えておいてください。データをフィルタリングしないと意味がありません。私は小さなベクトルのためにそれを示すことができます。 – yuk

3

たぶんthis user-created plotting routineを助けることができるとしてみてください。リンク先のページから

Screnshot: Screnshot from the linked page

+0

非常に素晴らしいスクリプト!scatter3関数の出力に比べて読み込みがはるかに簡単です。 – prabhat

関連する問題