mxArraysДвоичные файлы MEX, созданные на 64-разрядных платформах, могут обрабатывать 64-разрядные mxArrays. Эти большие массивы данных могут иметь до 248-1 элемент. Максимальное количество элементов разреженного mxArray может иметь значение 248-2.
Использование следующих инструкций также создает независимые от платформы двоичные файлы MEX.
Ваше системное строение может повлиять на эффективность MATLAB®. Требование к 64-разрядному процессору позволяет вам создать mxArray и доступ к данным в нем. Однако системная память, в частности размер оперативной и виртуальной памяти, определяют скорость, с которой MATLAB обрабатывает mxArray. Чем больше доступной памяти, тем быстрее обработка.
Объем оперативной памяти также ограничивает объем данных, которые можно обработать за один раз в MATLAB. Для руководства по вопросам памяти смотрите Стратегии эффективного использования памяти.
Сигнатуры функций API, показанных в следующей таблице, используют mwSize или mwIndex типы для работы с 64-разрядной mxArray. Переменные, используемые в исходном коде для вызова этих функций, должны быть правильным типом.
Язык ФОРТРАН mxArray Функции, использующие mwSize/ mwIndex
mxCalcSingleSubscript | mxCreateStructMatrix |
mxCalloc | mxGetCell |
| mxGetDimensions |
| mxGetElementSize |
| mxGetField |
| mxGetFieldByNumber |
| mxGetIr |
| mxGetJc |
| mxGetM |
| mxGetN |
| mxGetNumberOfDimensions |
| mxGetNumberOfElements |
| mxGetNzmax |
| mxGetProperty |
| mxGetString |
| mxMalloc |
| mxRealloc |
| mxSetCell |
| mxSetDimensions |
mxCreateCellArray | mxSetField |
mxCreateCellMatrix | mxSetFieldByNumber |
mxCreateCharArray | mxSetIr |
mxCreateCharMatrixFromStrings | mxSetJc |
mxCreateDoubleMatrix | mxSetM |
mxCreateNumericArray | mxSetN |
mxCreateNumericMatrix | mxSetNzmax |
mxCreateSparse | mxSetProperty |
mxCreateStructArray |
При использовании 64-битного API, mwSize и mwIndex эквивалентны INTEGER*8 на Фортране. Этот тип не подписан, в отличие от INTEGER*4, который является типом, используемым в 32-битном API. Будьте осторожны, чтобы не передать какие-либо отрицательные значения функциям, которые берут mwSize или mwIndex аргументы. Не приводите отрицательные INTEGER*4 значений в mwSize или mwIndex; возвращенное значение невозможно предсказать. Вместо этого измените код, чтобы избежать использования отрицательных значений.
Если вы разрабатываете кросс-платформенные приложения (программы, которые могут запускаться как на 32-разрядной, так и на 64-разрядных архитектурах), обратите внимание на верхний предел значений, которые вы используете для mwSize и mwIndex. 32-битное приложение читает эти значения и присваивает их переменным, объявленным как INTEGER*4 на Фортране. Будьте осторожны, чтобы избежать назначения большого mwSize или mwIndex значение для INTEGER*4 или другой переменной, которая может быть слишком маленькой.