Matlab if then的单行形式与函数(function)单行形式

本文介绍了MatLab中单行if语句的使用技巧,以及函数句柄(function_handle)的概念,包括其在提高运行速度和函数引用灵活性方面的优势,以及如何通过whos函数进行变量名和类型查找。
摘要由CSDN通过智能技术生成

 if then的单行形式

if a > b
    foo = 'r';
else
    foo = 'g';
end

最佳答案

MatLab 中的单行 if 语句没有语法糖,但如果您的语句非常简单,您可以将其写在一行中。


我曾经在我的旧项目中有这样的单行 if 语句:

if (k < 1); k = 1; end;
在你的情况下,它看起来像:
 
if a > b; foo = 'r'; else; foo = 'g'; end;

或者,如果你不喜欢分号

if a > b, foo = 'r'; else, foo = 'g'; end

函数:

f=@(x)acos(x)表示什么意思?其中@代表什么?
答:表示f为函数句柄,@是定义句柄的运算符。f=@(x)acos(x) 相当于建立了一个函数文件:
% f.m

function  y=f(x)
y=acos(x);

详细说明:

1、函数句柄/function_handle(@):是一种间接调用函数的方式。
2、语法:handle=@functionname  or handle=@(arglist)anonymous_function
3、描述:函数句柄(function handle)是一种能够提供函数间接调用的matlab value。你可以通过传递句柄来调用各种其他功能。你也可以将句柄存储到数据结构中备用(例如Handle Graphic 回调)。句柄是matlab的标准数据类型之一。
      当创建句柄时,你所指定的函数必须在matlab搜索路径之中,并且必须在创建语句的scope之中。例如,只要在定义子函数的文件之中,你句可以为这个子函数创建句柄。这些条件不适用于evaluate函数句柄。例如,你可以在一个单独(out-scope)通过句柄执行一个子函数,这要求句柄是在in-scope创建的。
       handle=@(arglist)anonymous_function用来创建匿名函数(anonymous function)并返回该匿名函数的句柄。括号右边的函数体是单个的matlab语句(statement)或者matlab命令。arglist是一个用逗号“,”分隔的输入变量列表。该函数通过句柄handle执行。
备注:函数句柄是标准的matlab数据类型。因此,你可以像matlab其他数据类型一样进行操作。

4、函数句柄的好处
       ①提高运行速度。因为matlab对函数的调用每次都是要搜索所有的路径,从set path中我们可以看到,路径是非常的多的,所以如果一个函数在你的程序中需要经常用到的话,使用函数句柄,对你的速度会有提高的。
       ②使用可以与变量一样方便。比如说,我再这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来。因为你创建的function handles中,已经包含了路径,

组合:

比如:

1、实现快速查找变量为Rte结尾的变量名称:

varlist = whos('-regex','Rte$');
varlist = whos('*Rte');

2、实现快速查找变量类型为struct的类型变量

留在评论区;

Tips:

keyboard % 暂停只能通过点击。

pause % 有固定的暂停时间

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值