MATLAB畫3D時頻圖的效果比Origin差遠了....但用Origin去畫MATLAB需要一些過程
本帖讓你輕輕松松把MATLAB的時頻圖搬移到Origin中,然后擁有高級視圖的3D時頻圖,并且可以隨心調整格式
一、數據搬移
首先,在MATLAB中打開時頻圖變量
復制
在Origin中創建一個和你的矩陣大小相同的矩陣
把復制的內容粘貼到Origin矩陣里
這兩個都適合畫3D時頻圖
如果矩陣行列數很多,沒法直接從MATLAB打開復制的話,可以保存下來,通過Origin直接打開.mat文件
%生成時頻圖:
[tfr,t,f] = tfrctfd2(S);%生成3D時頻圖:
% 獲取幅度
tfr_asb = abs(tfr);% 計算最大值,用于caxis
level = max(max(tfr_asb(:, 200:800)));
new_t = t / 1000; % 將t軸的值縮小1000倍
tfr_asb = tfr_asb/max(tfr_asb(:));
% 創建三維圖形
figure;
surf(new_t, f, tfr_asb, 'EdgeColor', 'none'); % 使用surf來創建3D圖xlim([0,1])
ylim([0,0.5])
% 設置x軸的刻度% 設置軸標簽
xlabel('Normalized Time');
ylabel('Normalized Frequency');
zlabel('Normalized Amplitude');% 調整視角
view(3); % 設置為3D視角% 可選:暫停使圖形實時更新
pause(0.05);set(gca, 'FontName', 'Times New Roman');save("D:\實驗室\論文\論文-多信號參數估計\JCR3\Principle\Rubber band\tfr_asb.mat",'tfr_asb')
二、顏色映射(最重要的一步)
Origin直接畫出來的3D時頻圖是沒法看的,需要用MATLAB的顏色映射表
加載映射表,更多調色板:
從文件導入:
打開
我自己導出的MATLAB顏色映射表就放在這了:?
1.pal
加載成功:
效果:
另外一種方法就是可以打開一個映射好的文件(格式也調好了最好),然后復制所有文件格式,粘貼
這是我調好的格式:
3D_abs.opju
這個算Origin的一種福利吧,不得不說挺方便的。之前我都是復制一個調好繪圖格式的origin文件,替換矩陣數據;也嘗試過更改繪圖鏈接的工作簿(沒成功....)
一些小技巧
時頻圖xy坐標軸搞反了怎么辦
比如我的Frequency應該是0-0.5,Time應該是0-1
那就把映射值改改就好了
改成:
這個時候雙擊坐標軸調整下范圍就行了