Matlab 點陣四維表示

2021-07-09 20:41:32 字數 1335 閱讀 2721

做數模時,matlab的四維表示找了我一晚上,好浪費時間,在這裡做個整理。

四維是xyz加各點顏色t=f(x,y,z)

我把三維空間離散化成三維點陣,x,y,z表示其中一維,都是從1到xn,yn,zn

現在我的是乙個三維矩陣

所以現在是在乙個三維空間布滿了點,我想用顏色來表示這些點。

會查到scatter3和plot3這兩個函式

我用的是scatter3

寫一下我寫的函式

scatter3(x(v),y(v),z(v),35,'filled','cdata',t(x(v),y(v),z(v)))

x(v):繪製點的x軸座標

y(v):繪製點的y軸座標

z(v):繪製點的z軸座標

35:繪製點的大小

'filled':繪製點實心

'cdata',t(x(v),y(v),z(v)):將繪製的每個點根據t(x,y,z)的值填上顏色資料

(x(v),y(v),z(v))就是每乙個點的座標了,所以x(v),y(v),z(v)的數量一點要相同

x(v)=1:a:n1

y(v)=1:b:n2

z(v)=1:c:n3

這樣寫,每個軸上的數量一定要相等

但是這樣寫其實是有問題的

他表示(1,1,1)(1+a,1+b,1+c)...(n1,n2,n3),所以最後繪製出來應該是一條對角線

如果你要點陣的話,會比較麻煩,我是列舉的,應該有其他方法

我用數字少點做個例子比如2*2*2的三維矩陣

x(v)=[1,1,1,1,2,2,2,2]

y(v)=[1,1,2,2,1,1,2,2]

z(v)=[1,2,1,2,1,2,1,2]

這樣三維矩陣裡所有點就都表示出來了

接下來就是繪製

可以用乙個for迴圈

for v=1:8

scatter3(x(v),z(v),y(v),35,'filled','cdata',t(x(v),y(v),z(v)))

hold on;%這個一定要!!!多次繪製保留原圖,不重新整理

grid on;%網格線

box on; %座標軸刻度線

shading interp;

endview(60,30)%視角

colorbar;%顏色條

title('model')

效果圖

這是乙個11*11*11的三維矩陣,當時我用列舉法,可以想象我的心情嗎?

1331個點*3。。。

對了,提醒一句,執行會很慢,所以點盡量少些。

四維陣列 遊戲

小g正在玩一款遊戲,遊戲地圖上有n個點 1到n編號 這些點之間有m條無向邊 沒有重邊 一次系統重新整理會在某個時刻在某點重新整理出一定數量的怪物,系統重新整理出來的怪物只會存在1秒,下一秒就會消失。如果那個時刻小g正好在那個點,那麼小g可以秒殺 秒殺所用時間忽略不計,下同 這個點上的所有怪物。另外,...

四維陣列 遊戲

題目描述 小g正在玩一款遊戲,遊戲地圖上有n個點 1到n編號 這些點之間有m條無向邊 沒有重邊 一次系統重新整理會在某個時刻在某點重新整理出一定數量的怪物,系統重新整理出來的怪物只會存在1秒,下一秒就會消失。如果那個時刻小g正好在那個點,那麼小g可以秒殺 秒殺所用時間忽略不計,下同 這個點上的所有怪...

專題 四維DP

題目描述 設有n n的方格圖 n 9 我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示 見樣例 a0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0 0 0 15...