以下标识符是关键字,不能用作变量或函数名:
工具函数 |变量语句 |函数定义 |控制语句 |迭代结构体 |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
¶语句变量具有全局作用域。
全球的x;如果(x))x=1;endif
详见: persistent.
var
¶将变量语句为持久变量。
已在函数中语句为持久的变量将在对同一函数的后续调用之间将其内容保留在内存中。持久变量和全局变量之间的区别在于,持久变量在特定函数的范围内是局部的,在其他地方是不可见的。
详见: global.
outputs = function_name (input, …)
¶ function_name (input, …)
¶outputs = function_name
¶以名称开始函数体function_name
具有outputsasresults,和inputs作为参数。
稍后可以使用以下语法在Octave中调用该函数
[output1, output2, ...] = 函数名称(input1, input2, ...)
详见: return.
符号函数的结束。
详见: function.
数组的最后一个元素或任意元素的末尾for
, parfor
,if
, do
, while
, function
, switch
,try
或unwind_protect
块
作为数组的索引,魔术索引"end"
指索引操作中的最后一个有效条目。
用例
x= [ 1 2 3; 4 5 6 ];x(1,完)⇒ 3.x(完,1)⇒ 4.x(结束,结束)⇒ 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
¶开始切换块。
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, …}
¶开关块中的case语句。
Octave大小写是排他的,不会像C语言大小写那样失败。一个switch语句必须至少有一个case。详见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
(cond)
¶结束一个直到循环。
有条件的cond如果它不是空的,并且如果全部的值为非零。
详见do
例如。
详见: do.
i = range
¶(i = range, maxproc)
¶开始一个可能并行执行的for循环。
A.parfor
循环的语法与for
环如果您的Octavesession启用了并行处理池,则的迭代parfor
循环将在池的工作者之间并行执行。否则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