你盯着电脑屏幕上的MATLAB界面发愁,手里的咖啡凉了都没注意——老师布置的电路分析作业里突然冒出一堆复数计算,可你连怎么在代码里打”j”和”i”都没搞明白?别慌,今天咱们就把这个看似玄乎的虚数操作拆开了揉碎了说,保准你半小时后就能哼着小调做傅里叶变换!
从键盘到代码:虚数输入的正确姿势
在MATLAB里输入虚数就跟发微信表情一样简单。想要表示3+4j?直接敲”3+4i”回车就行,注意这里有个坑:字母i前面千万别手贱加乘号!系统会自动识别这种写法。不过你要是看到有些老外写的代码用”j”也别慌,MATLAB这货两个字母都认,就跟番茄酱和黄芥末似的,爱用哪个用哪个。
举个例子试试: matlab z = 2+3i; % 教科书式写法 w = 4-5j; % 工程界偏爱这个 跑完这两行,工作区里就会躺着两个活蹦乱跳的复数。不过这里有个冷知识:当你在命令行直接输入”i”的时候,可能会被之前定义的变量覆盖!比如说你手滑写了句”i=5″,那之后的i就变成实数5了。这时候就得祭出终极杀招——用1i来保命: matlab i = 10; % 作死操作 real_i = 1i; % 这才是永远纯洁的虚数单位
虚数的七十二变
复数在MATLAB里就跟孙猴子似的能变出各种花样。先说最基本的四则运算,加减法就跟买菜算账一样直观: matlab (3+4i) + (1-2i) % 直接等于4+2i (2+3i) – (5-1i) % 变成-3+4i 乘法可就有意思了,得按分配律展开: matlab (1+2i)*(3-4i) = 1*3 + 1*(-4i) + 2i*3 + 2i*(-4i) = 3 -4i +6i -8i² = 3 +2i +8 (因为i²=-1) = 11+2i MATLAB会自动帮你搞定这些计算,不过自己知道原理才不会翻车对吧?
求模和相位角是复数的看家本领: matlab abs(3+4i) % 蹦出个5 angle(1+i) % 45度换算成弧度就是π/4 共轭复数用起来也方便: matlab conj(2-3i) % 直接变2+3i
当复数遇上矩阵
MATLAB最拿手的就是矩阵操作,复数矩阵玩起来更带感。比如创建一个2×2的复数矩阵: matlab C = [1+2i, 3-4i; 5j, 6]; 转置运算在这里有个坑点:普通转置(‘)会同时取共轭,要想保持原样得用.’操作符: matlab C’ % 共轭转置 C.’ % 普通转置 做矩阵乘法时记得检查维度匹配,复数相乘时会自动处理虚实部分的计算,这点比手工算作业省心多了。
画图展示实力
光会算数不算本事,能把复数画出来才是真功夫。试试这两种经典操作: 1. 把复数的实部和虚部分别画成曲线: matlab t = 0:0.1:10; signal = exp(-0.1*t).*exp(1i*2*pi*t); plot(real(signal), ‘b–‘); hold on plot(imag(signal), ‘r:’); 2. 在复平面上画散点图: matlab scatter(real(signal), imag(signal), ‘filled’); xlabel(‘实部’); ylabel(‘虚部’);
避坑指南
新手常栽的几个跟头: – 把i当成变量改了之后忘记恢复 – 矩阵转置时搞混’和.’ – 用plot直接画复数导致只显示实部 – 忘记指数形式要加乘号:正确写法是exp(1i*pi),不是exp(1ipi)
要是遇到诡异的计算结果,先检查工作区变量,再用whos命令看看数据类型,八成是哪里把复数弄成实数了。
小编观点
折腾了这么多,其实MATLAB处理虚数就跟玩俄罗斯方块似的,刚开始觉得那些旋转操作反人类,摸清门道后简直停不下来。下次遇到复数运算别再躲着走了,掏出这些招数,保证让你在同学面前秀一把”代码侠”的风采。对了,记得把默认的i和j保护好,别让手贱的赋值语句毁了你的完美算法!
免责声明:网所有文字、图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,内容仅提供用户参考,若因此产生任何纠纷,本站概不负责,如有侵权联系本站删除!邮箱:207985384@qq.com https://www.ainiseo.com/hosting/40707.html