我试图定义一个接收矩阵的函数,当它的尺寸没有作为输入提供时,在可选参数中计算这些尺寸 d
这不起作用,但给你的想法(选项参数需要是常量):
Options[DimM] = {d -> Dimensions[A]};
DimM[A_?MatrixQ, OptionsPattern[]] := OptionValue@d;
Run Code Online (Sandbox Code Playgroud)
实际上,简单的方法是输入一个不可能的值,并在函数def中输入if条件
Options[DimM] = {d -> 0};
DimM[A_?MatrixQ, OptionsPattern[]] :=If[OptionValue@d==0,Dimensions[A],OptionValue@d]
Run Code Online (Sandbox Code Playgroud)
我怎样才能最有效地完成这项工作?