matlab|那些你不得不知道的matlab小技巧(代码片段)

slandarer slandarer     2022-12-03     357

关键词:

1: 实时脚本控件

实时脚本应该大部分人都会用了,但是实时脚本控件应该用的人还不多,怎么说呢,应该算一个更方便调整参数的模块叭。点击图示按钮即可插入各种类型的控件:

插入之后双击控件即可设置其属性:

举几个简单的例子(因为推送显示不了控件,因此给出的代码为无控件版本,请自行添加控件,或者下载网盘压缩包:
【链接】:https://pan.baidu.com/s/15JxprFG8B10DsocdwzqqLQ?pwd=slan
【提取码】:slan

蝴蝶线

a=3.5;
clc;cla;clf
x=linspace(0,2*pi,500);
hdl=polarplot(x,sin(x)+sin(a.*x).^3,'LineWidth',1.5);
ax=gca;ax.RTick=[];

变色玫瑰花

clc;cla;clf
CMAP="parula";
[x,t]=meshgrid((0:24)./24,(0:0.5:575)./575.*20.*pi+4*pi);
p=(pi/2)*exp(-t./(8*pi));
change=sin(15*t)/150;
u=1-(1-mod(3.6*t,2*pi)./pi).^4./2+change;
y=2*(x.^2-x).^2.*sin(p);
r=u.*(x.*sin(p)+y.*cos(p));
h=u.*(x.*cos(p)-y.*sin(p));
surface(r.*cos(t),r.*sin(t),h,'EdgeAlpha',0.1,...
    'EdgeColor',[0 0 0],'FaceColor','interp')
colormap(CMAP)
grid on
view(45,45)

旋转多边形

lenRatio=0.19;
numEdge=7;
numPolygon=14;

clc;cla;clf
theta=linspace(0,2*pi,numEdge+1);
X=cos(theta);X(end)=[];
Y=sin(theta);Y(end)=[];

fill(X,Y,[0,0,0],'FaceColor','none');
hold on;
axis equal
axis([-1,1,-1,1])

for i=1:numPolygon
    tX=[X(2:end),X(1)];
    tY=[Y(2:end),Y(1)];
    X=(tX-X).*lenRatio+X;
    Y=(tY-Y).*lenRatio+Y;
    fill(X,Y,[0,0,0],'FaceColor','none');
end
hold off

2: 半透明折线图

官网上折线图函数plot介绍告诉了我们咋改粗细,咋调整标记样式,咋调整颜色,但是就是没告诉我们咋设置透明度,但其实plot的color属性看起来是rgb值,其实可以是rgba值,我们把原本rgb三元组改成四元组即可设置透明度,例如:

x=0:.1:4*pi;
hold on
plot(x,sin(x),'LineWidth',2,'Color',[1,0,0,0.5]) % 红色,透明50%
plot(x,cos(x),'LineWidth',2,'Color',[0,0,1,0.5]) % 蓝色,透明50%


3: MATLAB自带颜色(lines)

系统自带离散颜色,在官网各种数值:

但其实有个自带函数lines可以获取这些基本颜色:例如:

lines(1)

lines(2)

ans =
0.0000 0.4470 0.7410

ans =
0.0000 0.4470 0.7410
0.8500 0.3250 0.0980

再举个例子:

% 生成18个颜色
cList=lines(18);

x=0:.1:4*pi;
hold on
% 循环绘图
for i=1:18
    plot(x,sin(x+i*.1).*0.9^i,'Color',cList(i,:),'LineWidth',1.5)
end


4: 批量注释

最简单的多行注释就是选中多行后点击图示按钮,旁边的按钮即为取消多行注释:

当然我们点卡:预设->快捷方式->搜索注释,也能发现可以用Ctrl+R多行注释,用Ctrl+T取消注释:

当然%%也是多行注释的好方法:


5: 少量代码出现中文乱码

出现中文乱码的可能原因多如牛毛,整理出一篇应对全部情况的文章也挺麻烦,这里给出一个通用的解决方法,就是将出现乱码的m文件后缀由.m改为.txt之后全部内容复制到新的m文件即可。


6: 实数根

matlab使用^或者power来求负数的奇数次根时,默认为虚根,相求实根可以使用nthroot函数:

r1=(-3)^(1/3)
r2=power(-3,1/3)

r3=nthroot(-3,3)

r1 =0.7211 + 1.2490i
r2 =0.7211 + 1.2490i
r3=-1.4422


7: 仅显示部分图例

给各个图形对象命名并当作legend函数第一个参数即可,举个例子:

x=0:.2:4*pi;
% 随便画点图
hold on;grid on
p1=plot(x,sin(x),'-.','LineWidth',2);
p2=plot(x,sin(0.5.*x),'--','LineWidth',2);
p3=plot(x,sin(x).^2,':','LineWidth',2);
%13图像做图例
legend([p1,p3],'sin(x)','sin^2(x)')


8: 生成latex及mathml公式

这里直接放上官网的例子叭:

latex公式生成

syms x
S = [sym(1)/3 x; exp(x) x^2]

S = ( 1 3 x e x x 2 ) S=\\left(\\beginarraycc \\frac13 & x\\\\ \\mathrme^x & x^2 \\endarray\\right) S=(31exxx2)

chr = latex(S)

运行结果:

chr = 
'\\left(\\beginarraycc \\frac13 & x\\\\ \\mathrme^x & x^2 \\endarray\\right)'

MathML公式生成

可以试一下直接将MathML公式复制到非WPS的word文档,会直接生成公式,不过MATLAB对于简单的公式,其生成的MathML可以直接在word生成公式,复杂的就别指望了。。。

syms x
f = 1/exp(x^2);
chr=mathml(f)

运行结果:

chr =

    '<math xmlns='http://www.w3.org/1998/Math/MathML' display='block'>
       <msup>
         <mo>&ee;</mo>
         <mrow>
           <mo>-</mo>
           <msup>
             <mi>x</mi>
             <mn>2</mn>
           </msup>
         </mrow>
       </msup>
     </math>
     '

matlab|那些你不得不知道的matlab小技巧(代码片段)

1:预设符号变量类型假设我们编写了如下代码:symsxf=x^3+x^2+9*x+9;solve(f==0)此时求解结果为:ans=-1-3i3i但如果在求解前预设x为实数:symsxassume(x,'real')f=x^3+x^2+9*x 查看详情

matlab|那些你不得不知道的matlab小技巧(代码片段)

嗨嗨嗨第四期来啦:1:将小数转化为分数并提取分子和分母a=2065/2013;b=split(rats(a),'/')c=str2num(b1)d=str2num(b2)b=2×1cell数组’2065’'2013’ \\,c=2065 \\,d=20132:元胞与数组转化2.1࿱ 查看详情

matlab|那些你不得不知道的matlab小技巧(代码片段)

嗨嗨嗨第四期来啦:1:将小数转化为分数并提取分子和分母a=2065/2013;b=split(rats(a),'/')c=str2num(b1)d=str2num(b2)b=2×1cell数组’2065’'2013’ \\,c=2065 \\,d=20132:元胞与数组转化2.1࿱ 查看详情

matlab|那些你不得不知道的matlab小技巧(代码片段)

1:实时脚本控件实时脚本应该大部分人都会用了,但是实时脚本控件应该用的人还不多,怎么说呢,应该算一个更方便调整参数的模块叭。点击图示按钮即可插入各种类型的控件:插入之后双击控件即可设置其属... 查看详情

matlab|那些你不得不知道的matlab小技巧(代码片段)

1:预设符号变量类型假设我们编写了如下代码:symsxf=x^3+x^2+9*x+9;solve(f==0)此时求解结果为:ans=-1-3i3i但如果在求解前预设x为实数:symsxassume(x,'real')f=x^3+x^2+9*x+9;solve(f==0)... 查看详情

网页搜索(百度谷歌)你不得不知道的十个小技巧(代码片段)

网页搜索(百度谷歌)你不得不知道的十个小技巧百度搜索广告多,谷歌搜索搜不到东西,这时候,你得问问自己——你,用对姿势了么?文章目录网页搜索(百度谷歌)你不得不知道的十个小... 查看详情

不得不知的idea实用小技巧(代码片段)

前言人人都说IDEA好,但你知道他的强大之处在哪儿么?今天就来看看,增进日常开发效率的IDEA小技巧。代码编辑复制&粘贴我们知道,最常用的复制粘贴是通过Ctrl+C/V,但如果要针对复制历史进行粘贴... 查看详情

为什么同样的算法,你的程序却一直超时?算法竞赛你不得不知道的小技巧(代码片段)

...同样的算法,你的程序却一直超时?算法竞赛你不得不知道的小技巧  大家好,我是亓官劼(qíguānjié),在【亓官劼】公众号、CSDN、GitHub、B站、华为开发者论坛等平台分享一些技术博文,主要包... 查看详情

那些你不得不知道的网络协议——dhcpdhcp中继vrrp(代码片段)

文章目录前言一、DHCP1.概述2.优点3.工作原理4.配置方法二、DHCP中继1.应用场景2.工作原理3.配置DHCP中继服务器三、VRRP1.概述2.选举机制3.项目详情前言随着网络规模的扩大和网络复杂度的提高,网络配置越来越复杂,计算... 查看详情

软件测试的那些不得不注意特殊字符你都知道吗?

软件测试中不得不注意的特殊字符:“%”符,它在数据库中为通配符,如果客户在搜索框中输入“%”,而程序未对输入的字符进行转义,在系统将解释为一个通配符,列出所有结果,而不是只含... 查看详情

matlab编程的时候有必须要写的东西吗?比如end那些

function后要加end的。一般在一个语句块结束时候要加end。matlab把每个;结束的叫一个语句,但是有的时候几个语句是一个快,比如if后面跟几个语句,像这种情况就要加end了,要不matlab怎么知道if后要执行多少语句。function的定义... 查看详情

记录一个小技巧

新手在刚安装完成MATLAB之后,可能会想要更改自己的默认工作文件夹,有时候设置预设路径后并不起作用,这个时候可以试下下面这个方法。1.右键点击matlab快捷方式,更改起始位置为你想要作为默认的工作文件夹路径,然后点... 查看详情

必看!macos进阶不得不知的实用小技巧

不知道大家对使用苹果电脑的体验如何?您充分利用您的mac了吗?其实macOS上存在着许多快捷方式和技巧可以帮助简化我们的工作流程,提高效率,但是在日常生活中经常被人们忽略或者遗忘。以下是macdown小编整理的一些macOS实... 查看详情

小技巧一些matlab中常用的快捷键使用总结

....Ctrl+t取消注释,并且对多行有效;3.ctrl+i让matlab帮你自动对齐程序;4.使用Ctrl+C可以中止正在运行的程序;5.m脚本文件快速执行:按F5;6.ctrl+ 查看详情

小技巧matlab中进行并行运算仿真加快仿真速度(代码片段)

...xff0c;我们学习了如何统计程序运行的时间。【小技巧】在matlab中如何精确统计一段程序的运行时间_fpga和matlab的博客-CSDN博客_matlab执行一条指令的时间我们先执行如下的程序:clc;clear;closeall;idx=0;tic;forj=1:1:100000000ifmod(j,10... 查看详情

关于网站那些不得不说的小秘密

在互联网高速发展的今天,“网站”这个词频繁地出现在我们的生活中,那么网站是什么呢?其实网站就是向互联网外界展示我们的一种工具。生活中,我们为了向别人展示自己的魅力,所以每天都立志做一个精致的猪猪女孩,... 查看详情

你应该知道的springbootmongodbjpa那些小tip.

官方文档https://docs.spring.io/spring-data/data-mongodb/docs/current/reference/html/index.html查询:***************************************************************************mongoTemple查询和修改@AutowiredMongoT 查看详情

matlab|两个较新版本中的坐标区域小技巧(代码片段)

两天不见甚是想念,有的朋友已经注意到我的某乎账号名称已经由hikari同步为slandarer希望大家看到不要惊讶哈,今天带来俩关于坐标区域的小细节,仅仅是小细节,拿来干啥用就看各位的脑洞了。子图自动最优排... 查看详情