[繪圖] EXCEL 匯入 MATLAB做3D圖

看板MATLAB作者 (海狐狸)時間8年前 (2015/10/24 18:57), 8年前編輯推噓2(2030)
留言32則, 4人參與, 最新討論串1/1
想請問一下各位大大.... 目前已經爬過一些文章... 但我還是畫不出來... 以下為我EXCEL的數據 http://imgur.com/ysOMvzF
http://i.imgur.com/ysOMvzF.jpg?1 A行 為 波長 做為 X軸 1列 為 時間 做為 Z軸 B行到之後BGX行 共1800組的數據 是每個波長之強度變化 做為 Y 軸 利用這三軸去做3D圖該如何寫CODE呢? 要做與下方類似的圖: http://imgur.com/KqUhTl9
http://i.imgur.com/KqUhTl9.jpg?1 (這是我用EXCEL做的3軸曲面圖, 但EXCEL 與 ORIGIN 都有限制數據組數.... 因此必須用MATLAB去做.... 懇請各位帥哥以及正妹幫忙小弟了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.59.174 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1445684248.A.777.html ※ 編輯: seafox (140.117.59.174), 10/24/2015 19:01:17

10/24 19:01, , 1F
附加圖的方式...好像有點不對-......-
10/24 19:01, 1F
※ 編輯: seafox (140.117.59.174), 10/24/2015 19:02:51 ※ 編輯: seafox (140.117.59.174), 10/24/2015 19:03:05

10/24 20:02, , 2F
直接mesh不是嗎= =?
10/24 20:02, 2F

10/24 20:02, , 3F
你有/3D過嗎?
10/24 20:02, 3F

10/24 20:40, , 4F
直接mesh...?
10/24 20:40, 4F

10/24 20:41, , 5F
這樣程式碼要怎麼寫0.0
10/24 20:41, 5F

10/24 20:43, , 6F
說實在...小弟新手一枚-.-
10/24 20:43, 6F

10/24 21:12, , 7F
想當伸手牌,請洽google
10/24 21:12, 7F

10/25 06:30, , 8F
Google "meshgrid"
10/25 06:30, 8F

10/25 08:17, , 9F
可能會需要interp shading
10/25 08:17, 9F
目前是這樣寫出來~ 但XY軸的圖可以顯示 但是Z軸部分還是卡關...... SPR=xlsread('SPR.xlsx'); x=SPR(:,1) ; %x軸 時間項 y=SPR(:,2:1801); %y軸 所有的數據 z=SPR(1,:); %總共多少的數據 xlabel('Wavelength (nm) '); ylabel('Reflected Intensity '); zlabel('time(s)'); mesh (x,y,z) ※ 編輯: seafox (140.117.59.174), 10/25/2015 17:43:42

10/25 17:54, , 10F
再加上colorbar就好了
10/25 17:54, 10F

10/26 18:25, , 11F
感謝各位~努力嘗試中:)
10/26 18:25, 11F
目前做出來是呈現這樣的3D圖形 http://imgur.com/Imw3VD0
我是用mesh 去做 但time部分~我的時間是0.5秒記一次共900秒 1800組...如何把time部分改成0~900呢? 而波長部分~裡面數據是400~800nm,但顯示上是0~600 這部分該如修正? ※ 編輯: seafox (140.117.59.174), 10/26/2015 18:29:52

10/26 18:42, , 12F
沒資料不知道從何幫起= =
10/26 18:42, 12F

10/26 18:44, , 13F
資料就是最上面那一張圖0.0
10/26 18:44, 13F

10/26 18:45, , 14F
10/26 18:45, 14F

10/26 18:48, , 15F
meshgrid 昨天有測試過~但跑不出來...(記憶體不足...)
10/26 18:48, 15F

10/26 18:58, , 16F
沒空一個個key= =
10/26 18:58, 16F

10/26 18:59, , 17F
meshgird應該不用
10/26 18:59, 17F
以下這是EXCEL 修正過後的檔案: https://drive.google.com/file/d/0B__H8DAs0cCzVTJFS3hZR3VKaGs/view?usp=sharing 第一種方式: 在MATLAB 中直接用 mesh(SPR.xlsx) xlabel('time(s) '); ylabel('Wavelength (nm) '); zlabel('Reflected Intensity'); 則會出現剛剛那一張圖 http://imgur.com/Imw3VD0
而問題點就是剛剛那兩個.... 第二種方式: x=SPR(:,1) ; %x軸 時間項 y=SPR(:,2:1801); %y軸 所有的數據 z=y(1,:); %總共多少的數據 xlabel('time(s) '); ylabel('Wavelength (nm) '); zlabel('Reflected Intensity'); plot3 (x,y,z) 這時候會出現以下這個: Error using plot3 Vectors must be the same length. 目前還在煩惱該如何修正..... ※ 編輯: seafox (140.117.59.174), 10/26/2015 19:43:06

10/26 19:43, , 18F
第一個是我直接用mesh去做3d 出現的問題
10/26 19:43, 18F

10/26 19:44, , 19F
第二方式 用plot(x,y) 可以呈現2軸~但用plot3 就卡住了...
10/26 19:44, 19F

10/26 19:46, , 20F
待我瞧瞧
10/26 19:46, 20F

10/26 20:14, , 21F
10/26 20:14, 21F
剛剛第一種方式~ 我有找到修正方式 目前已經修改好 TIME軸 但剩下一個問題 就是波長軸卡住無法修正...... 如圖: http://i.imgur.com/PsIwXso.jpg
※ 編輯: seafox (140.117.59.174), 10/26/2015 20:40:58

10/26 20:41, , 22F
波長單位是400~800 卡在700位置~
10/26 20:41, 22F

10/26 21:32, , 23F

10/26 21:32, , 24F

10/26 21:33, , 25F
你的軸應該搞錯了~"~
10/26 21:33, 25F

10/26 21:39, , 26F
這是我剛剛硬湊出來的...
10/26 21:39, 26F

10/26 21:40, , 27F
我研究一下您的code 0.0
10/26 21:40, 27F

10/26 21:41, , 28F
了解!!感謝c大大!! 應該是錯在我都用":"
10/26 21:41, 28F

10/26 21:42, , 29F
我在微調一下 orz
10/26 21:42, 29F

10/26 21:56, , 30F
哦..我發現我真的把xyz軸搞混了-.- 感謝c大的提醒...
10/26 21:56, 30F
SPR=xlsread('SPR.xlsx'); x=SPR(2:end,1); y=SPR(1,2:end); z=SPR(2:end,2:end); [Y, X] = meshgrid(y, x); mesh(X, Y, z) xlabel('time(s)'); ylabel('Wavelength (nm)'); zlabel('Reflected Intensity'); 這是我目前修正後所用的CODE ~ 修正完的圖形: http://i.imgur.com/hiYdPQT.jpg
感謝C大幫忙糾正錯誤 ORZ ※ 編輯: seafox (140.117.59.174), 10/26/2015 22:13:21

10/26 22:24, , 31F
差不多了,剩下colorbar條一條而已
10/26 22:24, 31F

10/26 22:47, , 32F
恩~那個我已經放上去了~感謝大大的提醒:)
10/26 22:47, 32F
文章代碼(AID): #1MAsGOTt (MATLAB)
文章代碼(AID): #1MAsGOTt (MATLAB)