File tree Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Expand file tree Collapse file tree 1 file changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ import Foreign
22
22
import Foreign.C.String
23
23
import Foreign.C.Types
24
24
import Data.List
25
+ import Foreign.Matlab.Array (createMXScalar )
25
26
import Foreign.Matlab.Util
26
27
import Foreign.Matlab.Internal
27
28
@@ -66,7 +67,7 @@ engineSetVar eng v x = do
66
67
r <- withEngine eng (\ eng -> withCString v (withMXArray x . engPutVariable eng))
67
68
when (r /= 0 ) $ fail " engineSetVar"
68
69
69
- data EngineEvalArg a = EvalArray (MXArray a ) | EvalVar String | EvalStr String
70
+ data EngineEvalArg a = EvalArray (MXArray a ) | EvalStruct MStruct | EvalVar String | EvalStr String
70
71
71
72
-- | Evaluate a function with the given arguments and number of results.
72
73
-- This automates 'engineSetVar' on arguments (using \"hseval_inN\"), 'engineEval', and 'engineGetVar' on results (using \"hseval_outN\").
@@ -82,6 +83,11 @@ engineEvalFun eng fun args no = do
82
83
let v = " hseval_in" ++ show i
83
84
engineSetVar eng v x
84
85
pure v
86
+ makearg (EvalStruct x) i = do
87
+ xa <- createMXScalar x
88
+ let v = " hseval_in" ++ show i
89
+ engineSetVar eng v xa
90
+ pure v
85
91
makearg (EvalVar v) _ = pure v
86
92
makearg (EvalStr v) _ = pure $ qt v
87
93
makeout i = " hseval_out" ++ show i
You can’t perform that action at this time.
0 commit comments