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

slandarer slandarer     2022-11-30     579

关键词:

嗨嗨嗨第四期来啦:

1: 将小数转化为分数并提取分子和分母

a=2065/2013 ;
b=split(rats(a),'/')
c=str2num(b1)
d=str2num(b2)

b =
2×1 cell 数组
’ 2065’
'2013 ’
  \\,
c =
2065
  \\,
d =
2013


2:元胞与数组转化

2.1:元胞转数值数组

将全部元素提取出来并排列成一列:

A=1,2,3;4,5,6;7,8,9
% 将全部元素提取出来并排列成一列
B1=[A:]'

A =
3×3 cell 数组
[1] [2] [3]
[4] [5] [6]
[7] [8] [9]
  \\,
B1 =
1
4
7
2
5
8
3
6
9

将数值元胞数组转换为数值数组:

A=1,2,3;4,5,6;7,8,9;
% 将数值元胞数组转换为数值数组
B2=cell2mat(A)
% 以下方式也可但速度较慢
% B2=reshape([A:],size(A))

B2 =
1 2 3
4 5 6
7 8 9

字符串元胞转数值数组:

C='12','34';'56','78'
D=reshape(str2num(char(C)),size(C))

C =
2×2 cell 数组
‘12’ ‘34’
‘56’ ‘78’
  \\,
D =
12 34
56 78

2.2:数值数组转元胞

分块并转元胞

A=[1,2,3;4,5,6]
% 行分成两块每块一行
% 列分成两块分别1行和2B=mat2cell(A,[1,1],[1,2])

A =
1 2 3
4 5 6
  \\,
B =
2×2 cell 数组
[1] [2 3]
[4] [5 6]

不分块转元胞,以下两种方法等价,但显然第二种方法简单很多:

A=[1,2,3;4,5,6];

B1=mat2cell(A,ones(1,size(A,1)),ones(1,size(A,2)))

B2=num2cell(A)

B1 =
2×3 cell 数组
[1] [2] [3]
[4] [5] [6]
  \\,
B2 =
2×3 cell 数组
[1] [2] [3]
[4] [5] [6]


3:属性元胞

对于这样要重复设置很多次的属性:

x=0:.2:4*pi;

hold on
plot(x,sin(x),'-s','LineWidth',2,'MarkerSize',10);
plot(x,sin(0.5.*x),'-^','LineWidth',2,'MarkerSize',10);
plot(x,sin(x).^2,'-o','LineWidth',2,'MarkerSize',10);

不妨将其存到元胞数组中:

x=0:.2:4*pi;

hold on
tc='LineWidth',2,'MarkerSize',10;

plot(x,sin(x),'-s',tc:);
plot(x,sin(0.5.*x),'-^',tc:);
plot(x,sin(x).^2,'-o',tc:);


4:删除nan值

一维向量:

oriData=[1 nan nan 4 nan 5 6]
oriData(isnan(oriData))=[]

oriData =
1 NaN NaN 4 NaN 5 6
  \\,
oriData =
1 4 5 6

删除含nan的行:

oriData=[1 2;nan 4;5 6;7 nan]
tData=sum(oriData,2);
oriData(isnan(tData),:)=[]

oriData =
       \\,\\,\\,\\,\\,\\, 1        \\,\\,\\,\\,\\,\\, 2
NaN        \\,\\,\\,\\,\\,\\, 4
       \\,\\,\\,\\,\\,\\, 5        \\,\\,\\,\\,\\,\\, 6
       \\,\\,\\,\\,\\,\\, 7 NaN
  \\,
oriData =
1 2
5 6

当然如果要删除含nan的列,将代码改为:

tData=sum(oriData,1);
oriData(:,isnan(tData))=[]

当然举一反三一下,用isinf函数可以删除无穷值。

5:获取工作区变量

众所周知whos函数可以获取当前工作区变量:

而在函数中或在app中,whos函数获取的是当前域内的变量而不是工作区变量。可以使用evalin函数获取指定为base工作区的变量:

evalin('base','whos')

6: 合并多fig为同一fig

假如我们有两个fig文件,分别名为1.fig,2.fig


合并为同一fig代码:

fig1=open('1.fig');
fig2=open('2.fig');

figure()
ax1=subplot(2,1,1);
copyobj(fig1.Children.Children,ax1)
delete(fig1)

ax2=subplot(2,1,2);
copyobj(fig2.Children.Children,ax2)
delete(fig2)


7: 合并多fig至同一axes

还是用上一部分的fig文件:

fig1=open('1.fig');
fig2=open('2.fig');

figure()
ax=gca;
copyobj(fig1.Children.Children,ax)
copyobj(fig2.Children.Children,ax)

delete(fig1)
delete(fig2)

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希望大家看到不要惊讶哈,今天带来俩关于坐标区域的小细节,仅仅是小细节,拿来干啥用就看各位的脑洞了。子图自动最优排... 查看详情