Я пытаюсь определить функцию, которая принимает матрицу, и когда ее размеры не представлены в качестве входных данных, вычислите эти измерения в необязательном параметре d
Это не работает, но дает вам идею (параметр параметров должен быть константами):
Options[DimM] = {d -> Dimensions[A]};
DimM[A_?MatrixQ, OptionsPattern[]] := [email protected];
В самом деле, простой способ - ввести невозможное значение, а в функции def поставить условие if, как в
Options[DimM] = {d -> 0};
DimM[A_?MatrixQ, OptionsPattern[]] :=If[[email protected]==0,Dimensions[A],[email protected]]
Как я могу выполнить это наиболее эффективно?