以下标识符是关键字,不能用作变量或函数名:
工具函数 |变量语句 |函数定义 |控制语句 |迭代结构体 |Classdef结构体 |执行环境
__FILE__|__LINE__|break|case|catch|classdef|continue|do|else|elseif|end|end_try_catch|end_unwind_protect|endclassdef|endenumeration|endevents|endfor|endfunction|endif|endmethods|endparfor|endproperties|endswitch|endwhile|endenumeration|events|for|function|global|if|methods|otherwise|parfor|persistent|properties|return|switch|try|until|unwind_protect|unwind_protect_cleanup|while
函数iskeyword
可用于快速检查是不是Octave关键字。
var
¶语句变量具有全局作用域。
global x; if (isempty (x)) x = 1; endif
详见: persistent.
var
¶将变量语句为持久变量。
已在函数中语句为持久的变量将在对同一函数的后续调用之间将其内容保留在内存中。持久变量和全局变量之间的区别在于,持久变量在特定函数的范围内是局部的,在其他地方是不可见的。
详见: global.
outputs = function_name (input, …)
¶ function_name (input, …)
¶outputs = function_name
¶函数名是function_name
,outputs是输出,inputs是输入参数。
稍后可以使用以下语法在Octave中调用该函数
[output1, output2, ...] = function_name (input1, input2, ...)
详见: return.
结束函数。
详见: function.
数组的最后一个元素或结束for
, parfor
,if
, do
, while
, function
, switch
,try
或unwind_protect
块
作为数组的索引,魔术索引"end"
指索引操作中的最后一个有效分量。
用例
x = [ 1 2 3; 4 5 6 ]; x(1,end) ⇒ 3 x(end,1) ⇒ 4 x(end,end) ⇒ 6
编程注意事项:
end
关键字不能在subsref
,subsasgn
或substruct
中用于手动索引操作。end
在索引表达式中,它必须重载函数定义,例如:function last_index = end (obj, end_dim, ndim_obj) if (end_dim == ndim_obj) last_index = prod (size (obj)(end_dim:ndim_obj)); else last_index = size (obj, end_dim); endif endfunction
有关更多信息,详见Object Oriented Programming.
详见: for, parfor, if, do, while, function, switch, try, unwind_protect.
立即将执行控制从函数或脚本返回到调用代码。
return
用于停止执行代码并立即退出m文件,而不是继续执行直到函数或脚本结束。
如果函数或脚本是直接调用的,而不是通过调用m文件中的代码调用的,那么Octave将返回到命令行。
详见: function.
(cond) … endif
¶(cond) … else … endif
¶(cond) … elseif (cond) … endif
¶(cond) … elseif (cond) … else … endif
¶开始if块。
如果cond非空,那么代表有条件,并且如果全部的值为非零则为真。
x = 1; if (x == 1) disp ("one"); elseif (x == 2) disp ("two"); else disp ("not one or two"); endif
详见: switch.
if块的备用操作。
详见if
查看示例。
详见: if.
(cond)
¶if块的备用条件。
如果cond非空,那么代表有条件,并且如果全部的值为非零则为真。
详见if
查看示例。
详见: if.
结束if块。
详见if
查看示例。
详见: if.
statement
¶开始switch块。
yesno = "yes"; switch (yesno) case {"Yes" "yes" "YES" "y" "Y"} value = 1; case {"No" "no" "NO" "n" "N"} value = 0; otherwise error ("invalid value"); endswitch
value
¶{value, …}
¶switch块中的case语句。
Octave的大小写是排他的,不会像C语言大小写那样失败。一个switch语句必须至少有一个case。详见switch
查看示例。
详见: switch.
结束switch块。
详见switch
查看示例。
详见: switch.
开始一个try_catch块。
如果try块中发生错误,则catch代码将运行,并在catch块之后继续执行(尽管通常建议使用lasterr
在清理完成后重新抛出错误的函数)。
详见: catch, unwind_protect.
value
¶开始try-catch块的清理部分。
详见: try.
开始一个unwind_protect块。
如果在unwind_protect块的第一部分中发生错误,则在抛出错误之前执行unwind_protect_cleanup块中的命令。如果没有抛出错误,那么unwind_protect_cleanup块将一直执行。换言之,无论unwind_protect_cleanup代码在unwind_protect块中的成功与否,都保证执行该代码。
详见: unwind_protect_cleanup, try.
开始unwind_protect块的清理部分。
详见: unwind_protect.
结束unwind_protect块。
详见: unwind_protect.
结束for循环。
详见for
查看示例。
详见: for.
(cond)
¶开始一个while循环。
如果cond非空,那么代表有条件,并且如果全部的值为非零则为真。
i = 0; while (i < 10) i++ endwhile
开始一个do循环。
这与while循环的不同之处在于,do循环的主体至少执行一次。
i = 0; do i++ until (i == 10)
(cond)
¶结束一个do循环。
如果cond非空,那么代表有条件,并且如果全部的值为非零则为真。
详见do
查看示例。
详见: do.
i = range
¶(i = range, maxproc)
¶开始一个可能并行执行的for循环。
一个parfor
循环的语法与for
循环的语法相同。如果您的Octave会话启用了并行处理池,则parfor
循环的迭代将在池的worker中并行执行。否则parfor
将完全按照for
逻辑执行.
在并行模式下操作时parfor
循环的迭代不能保证按顺序进行,而且在循环体内部可以进行的数据访问操作也有额外的限制。
警告并行处理池目前未在Octave中实现;parfor
当前的行为与for
循环完全相同
parfor i = 1:10 i endparfor
结束parfor循环。
详见parfor
查看示例。
详见: parfor.
开始一个classdef块。
详见: properties, methods, events, enumeration.
结束classdef块。
详见: classdef.
在classdef块中的属性块的开头。注意作用"properties"
是一个列出classdef类或对象属性的函数。
详见: endproperties.
结束classdef块中的属性块。
详见: properties.
在classdef块中的一个方法块的开头。请注意作用"methods"
是一个列出类或对象的方法的函数。
详见: endmethods.
结束classdef块中的方法块。
详见: methods.
在classdef块中的一个事件块的开头。
结束classdef块中的事件块。
详见: events.
在classdef块中开始枚举块。
结束classdef块中的枚举块。
详见: enumeration.
当lexer识别出"__FILE__"
关键字,返回一个包含正在执行的文件的全名和路径的字符数组。如果从命令行调用,"__FILE__"
将返回"stdin"
。
详见: __LINE__.
当lexer识别出"__LINE__"
关键字,返回一个数值,该数值包含正在执行的函数或文件的当前输入行号。如果从命令行调用,"__LINE__"
将返回1
。
详见: __FILE__.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2