@@ -289,7 +289,7 @@ function mxarray(a::AbstractArray{T}) where {T<:MxRealNum}
289
289
return mx
290
290
end
291
291
292
- function mxarray (a:: AbstractArray{T} ) where {T<: MxComplexNum }
292
+ function mxarray (a:: AbstractArray{T} ) where {T <: MxComplexNum }
293
293
mx = mxarray (T, size (a))
294
294
na = length (a)
295
295
rdat = unsafe_wrap (Array, real_ptr (mx), na)
@@ -302,6 +302,36 @@ function mxarray(a::AbstractArray{T}) where {T<:MxComplexNum}
302
302
end
303
303
304
304
305
+ function mxarray (a:: NTuple{N, T} ) where {N, T <: MxRealNum }
306
+ mx = mxarray (T, N)
307
+ pdat = ccall (mx_get_data[], Ptr{T}, (Ptr{Cvoid},), mx)
308
+ dat = unsafe_wrap (Array, pdat, N)
309
+ for i in 1 : N
310
+ dat[i] = a[i]
311
+ end
312
+ return mx
313
+ end
314
+
315
+ function mxarray (a:: NTuple{N, T} ) where {N, T <: MxComplexNum }
316
+ mx = mxarray (T, size (a))
317
+ na = length (a)
318
+ rdat = unsafe_wrap (Array, real_ptr (mx), na)
319
+ idat = unsafe_wrap (Array, imag_ptr (mx), na)
320
+ for (i, ix) in enumerate (eachindex (a))
321
+ rdat[i] = real (a[ix])
322
+ idat[i] = imag (a[ix])
323
+ end
324
+ return mx
325
+ end
326
+
327
+ function mxarray (a:: Tuple )
328
+ mx = mxcellarray (length (a))
329
+ for i in 1 : length (a)
330
+ set_cell (mx, i, mxarray (a[i]))
331
+ end
332
+ return mx
333
+ end
334
+
305
335
# sparse matrix
306
336
307
337
function mxsparse (ty:: Type{Float64} , m:: Integer , n:: Integer , nzmax:: Integer )
0 commit comments