整理记录matlab令人迷惑(或有用)的操作 不定期更新

2024-01-08 13:58

本文主要是介绍整理记录matlab令人迷惑(或有用)的操作 不定期更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


2.if转switch

巧用逻辑运算

score=68
switch 1case 90<=score&&score<=100,disp('优秀');case 70<=score&&score<90,disp('良好');case 60<=score&&score<70,disp('一般');case score<60,disp('不及格');
end

3.生成随机初级扫雷矩阵
rand_mat=rand(9,9);
[~,order]=sort(rand_mat(:));
mine=zeros(9,9);
mine(order(1:10))=1;

4.删除矩阵中含有元素0的行
A=[2 3 4 0;3 6 2 6;1 2 0 4;3 4 9 1];
A(sum(A(:,:)==0,2)~=0,:)=[]
%同理删除含有元素0的列:
%A(:,sum(A(:,:)==0,1)~=0)=[]

5.当timer和while做的小动画未进行完要优雅的从右上角关闭
set(gcf,'tag','co','CloseRequestFcn',@clo);function clo(~,~)stop(game)delete(findobj('tag','co'));clfcloseend 
%注:其中的stop(game)中的game是timer函数构造的实例名称。

6.删除图像
delete(findobj('type','line'))%删除类似于plot的线性图像
deletd(findobj('type','patch'))%删除类似于fill的填充图像%当你只想删除部分图像时,不妨给他们加个'tag'
%例如plot(x,y,'tag','plotline')
%   delete(findobj('tag','plotline'));

7.matlab拟合函数后转换成匿名函数
x=[2 2.5 3 3.5 4 4.5 5 5.5 6];
y=[41 38 34 32 29 28 25 22 20];
p=polyfit(x,y,3)
f=matlabFunction(poly2sym(p))

8.隐藏图像边框
set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w')

9.获取鼠标在figure上位置
set(gcf,'WindowButtonMotionFcn',@getpos)
function getpos(~,~)xy=get(gca,'CurrentPoint');x=xy(1,1);y=xy(1,2);end

10.黑白子轮流下棋?
turn=0
while 条件turn=mod(turn+1,2);switch turncase: 1,下黑子;case: 0,下白子;end
end

11.获取矩阵各行或各列最大值
A=[1 2 4;4 5 6;7 8 9];
max_A_rows=max(A,[],2)
max_A_cols=max(A,[],1)

12.构造0xn大小的矩阵,用于初始化矩阵
mat=ones(1,n);
mat(1,:)=[];
%这样的初始化矩阵可以直接往后面并上新的元素

13. 删除矩阵中不存在元素或无限大元素
mat1=[nan,4,5];
mat1(isnan(mat1))=[];mat2=[inf,6,7];
mat2(isinf(mat2))=[];

14.设置默认值
function example(arg1,arg2,arg3)if nargin<2arg2='';endif nargin<3arg3='';end
end

15.利用严密逻辑在matlab内无法关闭的图像(可用任务进程管理器关掉
function bug
set(gcf,'tag','co','CloseRequestFcn',@draw)function draw(~,~)spyend
draw()
end

16.能看懂就怪了的万年历(a,b,c分别为年月日)
function y=wannianli(a,b,c)
yue=[1 0 0;2 31 31;3 59 60;4 90 91;5 120 121;6 151 152;7 181 182;8 212 213;9 243 244;10 273 274;11 304 305;12 334 335];
y=mod(((a-1)*365+floor((a-1)/4)-floor((a-1)/100)+floor((a-1)/400)+yue(yue(:,1)==b,3-((~mod(a,4)==0)||((mod(a,100)==0)&&(~mod(a,400)==0))))+c+7),7);
end

17.复数矩阵转置
a=a(:).'
%来源:https://www.cnblogs.com/hgyzm/p/10298100.html

18.已知邻接矩阵求可达矩阵
function P=dgraf(A)
n=size(A,1);
P=A;
for i=2:nP=P+A^i;
end
P(P~=0)=1;
end
%来源:《图论算法及matlab实现》
%      北京航空航天大学出版社

19.没啥用的程序
function nothing=nothing(nothing),end

20.确定点击图像的序号

如果图像是用image创建,则可以为其设置’ButtonDownFcn’,并设置一个回调,如:@clickOnPic

PicHdl(i)=image([xMin xMax],[yMin yMax],picName,'tag',num2str(i),'ButtonDownFcn',@clickOnPic);

然后为clickOnPic第一个输入命名为object并获得其Tag值

function clickOnPic(object,~)picId=object.Tag;
end

详细使用可见我写的连连看程序或植物大战僵尸程序。


21.神奇的图像

超超超级短,超超超神奇,好久之前知乎上看到的,出处有些难找

mat=eye(40);
plot(fft(mat)); axis equal

在这里插入图片描述


22.RGB颜色与十六进制色相互转换

RGB颜色–>十六进制色

function string=ten2sixteen(num)%the num should be a 1x3 Integer mat limited in [0 255]exchange_list={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};string='#';for ii=1:3temp_num=num(ii);string(1+ii*2-1)=exchange_list{(temp_num-mod(temp_num,16))/16+1};string(1+ii*2)=exchange_list{mod(temp_num,16)+1};endend

十六进制色–>RGB颜色

function num=sixteen2ten(string)exchange_list='0123456789ABCDEF#';ismember(string,exchange_list)num=zeros(1,3);if all(ismember(string,exchange_list))for ii=1:3tempCoe1=find(ismember(exchange_list,string(ii*2))==1)-1;tempCoe2=find(ismember(exchange_list,string(ii*2+1))==1)-1;num(ii)=16*tempCoe1+tempCoe2;endelsenum=nan;endend 

这篇关于整理记录matlab令人迷惑(或有用)的操作 不定期更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583686

相关文章

MySQL游标和触发器的操作流程

《MySQL游标和触发器的操作流程》本文介绍了MySQL中的游标和触发器的使用方法,游标可以对查询结果集进行逐行处理,而触发器则可以在数据表发生更改时自动执行预定义的操作,感兴趣的朋友跟随小编一起看看... 目录游标游标的操作流程1. 定义游标2.打开游标3.利用游标检索数据4.关闭游标例题触发器触发器的基

在C#中分离饼图的某个区域的操作指南

《在C#中分离饼图的某个区域的操作指南》在处理Excel饼图时,我们可能需要将饼图的各个部分分离出来,以使它们更加醒目,Spire.XLS提供了Series.DataFormat.Percent属性,... 目录引言如何设置饼图各分片之间分离宽度的代码示例:从整个饼图中分离单个分片的代码示例:引言在处理

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

Java方法重载与重写之同名方法的双面魔法(最新整理)

《Java方法重载与重写之同名方法的双面魔法(最新整理)》文章介绍了Java中的方法重载Overloading和方法重写Overriding的区别联系,方法重载是指在同一个类中,允许存在多个方法名相同... 目录Java方法重载与重写:同名方法的双面魔法方法重载(Overloading):同门师兄弟的不同绝

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

使用Python在PDF中绘制多种图形的操作示例

《使用Python在PDF中绘制多种图形的操作示例》在进行PDF自动化处理时,人们往往首先想到的是文本生成、图片嵌入或表格绘制等常规需求,然而在许多实际业务场景中,能够在PDF中灵活绘制图形同样至关重... 目录1. 环境准备2. 创建 PDF 文档与页面3. 在 PDF 中绘制不同类型的图形python