Если я использую не-динамические массивы, все работаетКак переместить или скопировать многомерные динамические массивы matlab`s массивы
pmxArray = mxArray^;
perA_ptr: pmxArray;
perA: array[1..3,1..4] of double;
perA_ptr := mxCreateDoubleMatrix(4,3,mxREAL);
Move(perA, mxGetPr(perA_ptr)^, 4*3*sizeof(double));
......
_mlflinprog1(1,perX_ptr,perF_ptr,perA_ptr,perB_ptr,perLB_ptr);
это работает.
, но мне нужно использовать динамические массивы. И у меня есть проблема
perA: array of array of Double;
SetLength(perA,4,3);
perA_ptr := mxCreateDoubleMatrix(4,3,mxREAL);
Move(perA, mxGetPr(perA_ptr)^, 12*sizeof(double));
не работает, только мусор в массиве;
Move(perA[0,0], mxGetPr(perA_ptr)^, 4*sizeof(double));
- РАБОТАЕТ для первой строки, но мне нужно скопировать все данные массива, IDK, как это сделать в delphi.
Это массивы, необходимые для использования в библиотеке matlab c.
Поскольку он был построен из пакетов Fortran, MATLAB является основным столбцом. – excaza
ShowMessage (FloatToStr (mxGetPr (perA_ptr) ^)); return 0, wiil be 1; Как назначить P для perA_ptr? – SrdTLT
P - указатель на внутренний двойной массив в mxArray. Вот что возвращает 'mxGetPr'. Вы также назвали 'mxGetPr'. –