做數模時,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...