2012-09-01 72 views
0

鑑於t1,t2,t3,t4作爲真正的價值參數, 和以下格式的限制:Matlab的圖表描繪

(t1>=0 and t2>=0 and t3>=0 and t4>=0) 

((t2<=5) or (t1+t2+t3+t4<=3)) 

難道這限制使用MATLAB的.NET庫繪製? (我正在使用C#)。

我擔心的是:1。 這四次元,我不知道如何在圖表可以在Matlab來表示; 2.基本上這個約束可能會導致一個凸多邊形,這樣的多邊形可以在Matlab中繪製?

我完全新Matlab中,因此,如果這是可能的,一些代碼片段和結果,將是對我很大的幫助。謝謝。

回答

3

我只能解決它的Matlab的側面,因爲我不熟悉C#,但我認爲Matlab的.NET編譯應該是能夠導出所有的功能呢?

1:您可以使用動畫3D散點圖(以及表面,網格,線圖等變體)繪製4維數據。基本上,你的平均3D視頻遊戲,如果你想一想,就是4D的情節。對於散點圖,從0秒開始,只畫出t4 = 0的點,其中x = t1,y = t2,z = t3。在1秒內,只繪製t4 = 1的那些圖。在2秒時間內,只有t4 = 2,依此類推,直到達到最大值(t4),然後再循環。

您也可以使用顏色作爲第四維,以便在3D空間中有彩色點。

從我的觀點來看,你可以推廣到其他地塊。

http://www.mathworks.com/help/techdoc/ref/scatter3.htmlhttp://www.mathworks.com/help/techdoc/ref/surf.html

2:讓我來澄清一些事情。給出初始條件沒有座標可以是負的:

  • t2<=5限定的無限4維空間,這是在3名維無限並且在一個有限「板坯」(這是5個單位厚)。平板的一個邊緣位於原點和<0, 5, 0, 0>之間,連接到原點的三個其他邊沿沿着軸線的正方向延伸到無窮遠,沿着軸線延伸到t1,t3t4
  • t1+t2+t3+t4<=3定義了一個有限的四維金字塔,其頂點在原點和底部,方向爲<+, +, +, +>

鑑於您的OR,結果是這兩個空間的聯合。 (超)金字塔已經是(超)平板的一個子集,所以第二個表達式是多餘的。這個平板是微不足道的,所以我將展示如何僅將金字塔形象化。

對其進行可視化,我想你應該,比如說,設定t4到10個不同的值,並繪製每個其他3個參數爲不同顏色的表面。

一個例子:

clc 
clear 
close all 

n = 10; 

% Manually calculated maximae of x, y, z axes 
x = [0 0; 0 3]; 
y = [0 0; 3 0]; 
z = [3 3; 0 0]; % surf can only draw polygons, not triangles, so we just squash two points together 

% Actual t will be derived from this algorithmically 
t = [3 3; 3 3]; 

% So plots don't replace each other 
hold on 

for i = 0:0.1:1 
    % Manually derived 
    surf(x*i, y*i, z*i, t*(1-i)); 
end 
hold off 

% Just some aesthetic stuff 
xlabel('t1'); 
ylabel('t2'); 
zlabel('t3'); 
grid on 
colormap('hot') 

enter image description here

每個顏色是金字塔(頭位於原點)的不同T4的基礎 - 你可能想象一個3D金字塔「縮水」隨着時間的推移上。

我不知道的相關性,但凸多邊形是完全沒有在Matlab:

plot([0 0 1 1 2 2 3 3 0], [0 2 2 1 1 2 2 0 0]); axis([-1 4 -1 4]) 
+0

如何爲n維圖,有沒有辦法想象嗎? (約束中參數的數量可以是無限的) – william007

+0

對於散點圖,如果第四維是時間,第五維是顏色,則第六維可以是每個點的大小。第七可以是點的形狀(星形,圓形,十字形......假定值的範圍合理無變化)。任何n的n維?我認爲你很快就會用完有意義的功能。但是,如果您遇到維度問題,請考慮主成分分析。 – Superbest