怎么用Origin画出MATLAB效果的3D时频图

MATLAB画3D时频图的效果比Origin差远了....但用Origin去画MATLAB需要一些过程

本帖让你轻轻松松把MATLAB的时频图搬移到Origin中,然后拥有高级视图的3D时频图,并且可以随心调整格式

一、数据搬移

首先,在MATLAB中打开时频图变量

复制

在Origin中创建一个和你的矩阵大小相同的矩阵

把复制的内容粘贴到Origin矩阵里

这两个都适合画3D时频图

如果矩阵行列数很多,没法直接从MATLAB打开复制的话,可以保存下来,通过Origin直接打开.mat文件

Matlab 复制代码
%生成时频图:
[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

那就把映射值改改就好了

改成:

这个时候双击坐标轴调整下范围就行了

相关推荐
geovindu2 分钟前
CSharp: Command Pattern
开发语言·后端·c#·.net·.netcore·命令模式·行为模式
心易行者20 分钟前
Python自动化测试7步落地法:用python在线运行省掉90%环境配置时间
java·开发语言·人工智能·python·log4j·ai编程
tedcloud1231 小时前
OpenLogi 怎么搭建?用 Rust 打造一个轻量的 Logitech 外设管理工具
linux·运维·服务器·开发语言·后端·rust·开源
分享资料1 小时前
Matlab脚本调用Python脚本方法
matlab
Tanjia_kiki1 小时前
谷歌浏览器中F12编辑并重发请求
开发语言·前端·javascript
程序猿编码1 小时前
基于GGML的C++17轻量化语音推理引擎:说话人识别与语音分析技术全解析
开发语言·c++·pytorch·深度学习·神经网络·大模型
传奇开心果编程2 小时前
【Rust入门知识点学与练】第5课:函数
开发语言·学习·rust
秋田君2 小时前
Qt_QMediaPlayer类与QMediaPlaylist类
开发语言·qt
统计学小王子2 小时前
数学建模国赛倒计时6天——《软件工具(R语言精讲)》
开发语言·数学建模·r语言
C++ 老炮儿的技术栈2 小时前
Qt5 使用 QPainter 绘制阿基米德螺线
开发语言·c++·windows·qt·代码化