matlab 曲线属性星星,Matlab一些简单的操作tips

作者:matrix

被围观: 2,292 次

发布时间:2019-08-12

分类:零零星星 |

无评论 »

💡NOTICE:这是一个创建于 587 天前的主题,其中的信息可能已经有所发展或是发生改变。

由于matlab编程偏向于学术方面,对于我这种😍喜欢OOP以及普通字符串操作来说多少的不熟悉和麻烦。

遂记录。

timer定时器操作

类似于javascript的setInterval操作

myTimer = timer('Name','MyTimer', ...

'Period',2, ... % 2秒钟间隔

'StartDelay',0, ...

'TasksToExecute',inf, ...

'ExecutionMode','fixedSpacing', ...

'TimerFcn',@myTimerCallback,...

'ErrorFcn',@(~,thisEvent)exit);% 如果报错 则推出程序

start(myTimer);%启动

function myTimerCallback(hObject, eventdata)

disp(['run time:: ', datestr(datetime('now'),'yyyy-mm-dd HH:MM:SS') ])

end

删除所有定时器:

delete(timerfindall());

手动抛异常

baseException = MException('MYFUN:BadParameter','Parameter miss');

throw(baseException);

throw函数需要传入异常类。

MException类第一个参数为msgID。必须要有冒号:,名称都可以自定义。

参考:

https://ww2.mathworks.cn/help/matlab/ref/mexception.html

字符串比较

使用strcmp函数进行字符串比较。

不同于使用双等号==,双等号会对字符串中的每个字符进行比较相等,最终返回逻辑数组logical array。

if strcmp(str,'timestr')%判断字符串相等

dis('Content is equal');

end

多行注释

单行注释使用百分号%,

多行注释使用%{...%}

%{

...some thing

%}

函数默认参数判断以及设置值

function rel = func(arg1,arg2)

if exist('arg2', 'var') && ~isempty(arg2)%如果传入arg2参数 且不为空

bla bla

end

end

function [result] = func(format)

if ~exist('format', 'var') %不存在默认参数

result = '默认参数';

else

result = format;

end

end

exist函数中var表示(变量)类型

https://blog.csdn.net/liuxiabing150/article/details/46519785

删除数组指定下标

list(1) = [];%删除指定的下标的元素

del_index_list = [1 2 9 18]

list(del_index_list) = [];%删除多个下标元素

检测struct结构体字段是否存在

isfield(struct('a','1'),'a1') #判断a1字段是否存在

all(isfield(struct('field1','val1'),{'a','b'}))#判断a,b字段是否都存在

参考:

https://ww2.mathworks.cn/matlabcentral/answers/260295-dynamically-name-a-struct

动态添加struct数据key名称

data = struct();

name = 'Dynamic_Name';

data.(name) = 990;

匿名函数

匿名函数最为回调的处理和调用

% 回调函数的执行

function rel = func(arg1,callback)

cb = callback(data);%执行回调函数,传入data数据作为参数

if ~cb

bla bla

end

end

%回调函数作为参数来使用

func(arg1,@(data)deal(1));

func(arg1,@(data)[a=1;deal(a);]);%匿名函数执行多条语句

%普通函数作为回调函数

func(arg1,@cb);

function rel = cb(data)

rel = 1

end

说明:

使用@操作符

deal函数类似于java中的return操作

方括号[]最为数组操作可以防置多条语句来执行

追加保存数据到文件

now = 1583237214;

data_diff = 1;

data_uni_diff = 2;

res = [res;now,data_diff,data_uni_diff];

dlmwrite('chech_diff_time.txt',res,'-append');

-append参数表示追加处理

判断数据类型

class(123) % double

ischar('') % logic true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值