Возместите от первого элемента до желаемого элемента
#include "matrix.h" mwIndex mxCalcSingleSubscript(const mxArray *pm, mwSize nsubs, mwIndex *subs);
#include "fintrf.h" mwIndex mxCalcSingleSubscript(pm, nsubs, subs) mwPointer pm mwSize nsubs mwIndex subs
pm
Указатель на mxArray
nsubs
Число элементов в subs
массив. Как правило, вы устанавливаете nsubs
равняйтесь количеству размерностей в mxArray
тот pm
точки к.
Массив целых чисел. Каждое значение в массиве указывает индекс той размерности. В Синтаксисе C, значении в subs[0]
указывает индекс строки и значение в subs[1]
указывает индекс столбца. Используйте основанную на нуле индексацию для индексов. Например, чтобы выразить стартовый элемент двумерного mxArray
в subs
, установите subs[0]
к 0
и subs[1]
к 0
.
В Cинтаксисе языка Фортран, значении в subs(1)
указывает индекс строки и значение в subs(2)
указывает индекс столбца. Используйте индексацию на основе 1 для индексов. Например, чтобы выразить стартовый элемент двумерного mxArray
в subs
, установите subs(1)
к 1
и subs(2)
к 1
.
Число элементов или index, между запуском mxArray
и указанный индекс. Этот номер является линейным индексом, эквивалентным из индексов. Много Матричных Библиотечных подпрограмм (например, mxGetField
) потребуйте индекса в качестве аргумента.
Если subs
описывает стартовый элемент mxArray
, mxCalcSingleSubscript
возвращается 0. Если subs
описывает итоговый элемент mxArray
, mxCalcSingleSubscript
возвращает N-1
(где N
общее количество элементов).
Вызовите mxCalcSingleSubscript
определить, сколько элементы там между началом mxArray
и данный элемент того mxArray
. Функция преобразует индексы в линейные индексы.
Например, учитывая индекс как (5,7)
, mxCalcSingleSubscript
возвращает расстояние от первого элемента массива к (5,7)
элемент. Помните что mxArray
тип данных внутренне представляет все элементы данных в одномерном массиве, неважно, сколько размерностей MATLAB®
mxArray
кажется, имеет. Для примеров, показывающих внутреннее представление, смотрите Хранение данных.
Избегайте использования mxCalcSingleSubscript
пересекать элементы массива. В C более эффективно найти начальный адрес массива и затем использовать указатель, автопостепенно увеличивающийся, чтобы получить доступ к последовательным элементам. Например, чтобы найти начальный адрес числового массива, вызовите одну из введенных функций доступа к данным, например, mxGetDoubles
или mxGetComplexDoubles
.