public class MWStructArray extends MWArray
MWStructArray
класс управляет нативным массивом структур MATLAB.EMPTY_ARRAY
Конструктор и описание |
---|
MWStructArray()
Создает пустой массив структур.
|
MWStructArray(int[] dims, java.lang.String[] fieldnames)
Создает новый массив структур с заданными измерениями и именами полей.
|
MWStructArray(int rows, int cols, java.lang.String[] fieldnames)
Создает новую матрицу struct с конкретным количеством строк и столбцов и имен полей.
|
Модификатор и тип | Метод и описание |
---|---|
<T> T |
applyVisitor(AbstractMWArrayVisitor<T> v) |
MWClassID |
classID()
Возвращает тип MATLAB этого массива.
|
java.lang.Object |
clone()
Создает и возвращает глубокую копию этого массива.
|
int[] |
columnIndex()
Возвращает массив, содержащий индекс столбца каждого элемента в базовом массиве MATLAB.
|
int |
compareTo(java.lang.Object obj)
Сравнивает этот массив с заданным массивом для порядка.
|
MWArraystatic |
десериализовать(байт [] данные)
Создайте новый MWArray из сериализированных данных.
|
void |
dispose()
Освобождает нативный массив MATLAB, содержавший в этом массиве.
|
boolean |
equals(java.lang.Object obj)
Указывает, равен ли некоторый другой массив этому.
|
int |
fieldIndex(java.lang.String fieldname) |
java.lang.String[] |
fieldNames()
Возвращает имена полей в этом массиве.
|
MWStructArraystatic |
fromBean( Боб java.lang.Object) |
MWStructArraystatic |
fromMap(java.util.Map <java.lang.String, java.lang.Object> карта) |
MWStructArraystatic |
fromProperties( Опоры java.util.Properties) |
java.lang.Object |
get(int index)
Возвращает элемент при заданном смещении на основе 1 в этом массиве.
|
java.lang.Object |
get(int[] index)
Возвращает элемент в заданном массиве индекса на основе 1 в этом массиве.
|
java.lang.Object |
get(java.lang.String fieldname, int index)
Возвращает элемент при заданном смещении на основе 1 и имени поля в этом массиве.
|
java.lang.Object |
get(java.lang.String fieldname, int[] index)
Возвращает элемент в заданном массиве индекса на основе 1 и имени поля в этом массиве.
|
java.lang.Object |
getData()
Возвращает 1D массив, содержащий копию данных в базовом массиве MATLAB.
|
int[] |
getDimensions()
Возвращает массив, содержащий размер каждой размерности этого массива.
|
MWArray |
getfield(международный индекс)
Возвращает элемент при заданном смещении на основе 1 в этом массиве как
MWArray экземпляр. |
MWArray |
getfield(int [] индекс)
Возвращает разделяемую копию элемента в заданном массиве индекса на основе 1 в этом массиве как
MWArray экземпляр. |
MWArray |
getfield( Имя поля java.lang.String, международный индекс)
Возвращает разделяемую копию элемента при заданном смещении на основе 1 и имени поля в этом массиве как
MWArray экземпляр. |
MWArray |
getfield( Имя поля java.lang.String, int [] индекс)
Возвращает разделяемую копию элемента в заданном массиве индекса на основе 1 и имени поля в этом массиве как
MWArray экземпляр. |
int |
hashCode()
Возвращает значение хэш-кода для этого массива.
|
boolean |
isEmpty()
Тесты, если этот массив не имеет никаких элементов.
|
boolean |
isSparse()
Тесты, если этот массив разрежен.
|
int |
maximumNonZeros()
Возвращает выделенную способность разреженного массива.
|
int |
numberOfDimensions()
Возвращает количество размерностей этого массива.
|
int |
numberOfElements()
Возвращает общее количество элементов в этом массиве.
|
int |
numberOfFields() |
int |
numberOfNonZeros()
Возвращает количество ненулевых элементов в разреженном массиве.
|
protected java.lang.Object |
readResolve()
Вызванный механизмом сериализации при загрузке нового массива от потока байтов.
|
int[] |
rowIndex()
Возвращает массив, содержащий индекс строки каждого элемента в базовом массиве MATLAB.
|
byte[] |
serialize()
Сериализируйте массив MATLAB к массиву байтов.
|
void |
set(int[] index, java.lang.Object element)
Заменяет элемент в заданном массиве индекса на основе 1 в этом массиве с указанным элементом.
|
void |
set(int index, java.lang.Object element)
Заменяет элемент при заданном смещении на основе 1 в этом массиве с указанным элементом.
|
void |
set(java.lang.String fieldname, int[] index, java.lang.Object element)
Заменяет элемент в заданном массиве индекса на основе 1 и имени поля в этом массиве с указанным элементом.
|
void |
set(java.lang.String fieldname, int index, java.lang.Object element)
Заменяет элемент при заданном смещении на основе 1 и имени поля в этом массиве с указанным элементом.
|
void |
setData(java.lang.Object data) |
java.lang.Object |
sharedCopy()
Создает и возвращает разделяемую копию этого массива.
|
java.lang.Object[] |
toArray()
Возвращает массив, содержащий копию данных в базовом массиве MATLAB.
|
java.lang.String |
toString()
Возвращает строковое представление этого массива.
|
protected void |
validate()
Подтверждает указатель внутреннего массива.
|
disposeArray
public MWStructArray()
Пример: построение объекта массива структур
Этот пример создает объект MWStructArray 0 на 0:MWStructArray S = new MWStructArray(); System.out.println("Structure array S: " + S);Когда запущено, пример отображает этот вывод:
Structure array S: []
public MWStructArray(int[] dims, java.lang.String[] fieldnames)
dims
- Массив размеров размерности. Каждый размер размерности должен быть неотрицательным.fieldnames
- Массив имен полей.java.lang.NegativeArraySizeException
- Предоставляется отрицательный размер размерности. Пример: построение объекта массива структур
Этот пример создает 1 2 объект MWStructArray с полями f1, f2 и f3:String[] sfields = {"f1", "f2", "f3"}; int[] dims = new int[]{1,2}; MWStructArray S = new MWStructArray(dims, sfields); System.out.println("Structure array S: " + S);Когда запущено, пример отображает этот вывод:
Structure array S: 1x2 struct array with fields: f1 f2 f3
public MWStructArray(int rows, int cols, java.lang.String[] fieldnames)
rows
- Количество строк. Количество строк должно быть неотрицательным.cols
- Количество столбцов. Количество столбцов должно быть неотрицательным.fieldnames
- Массив имен полей.java.lang.NegativeArraySizeException
- Предоставляются отрицательная строка или размер столбца. Пример: построение объекта массива структур
Этот пример создает 1 2 объект MWStructArray с полями f1, f2 и f3:int rows = 1, cols = 2; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(rows, cols, sfields); System.out.println("Structure array S: " + S);Когда запущено, пример отображает этот вывод:
Structure array S: 1x2 struct array with fields: f1 f2 f3
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
MWStructArray
экземпляр, представляющий глубокую копию базового массива MATLAB. Пример: клонирование объекта массива структур
Создайте объект MWStructArray и затем клон того объекта:int[] sdims = {1, 2}; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(sdims, sfields); Object C = S.clone(); System.out.println("Clone of structure S is:"); System.out.println(C.toString());Когда запущено, пример отображает этот вывод:
Clone of structure S is: 1x2 struct array with fields: f1 f2 f3
java.lang.CloneNotSupportedException
- Класс объекта не реализует интерфейс Cloneable.public java.lang.Object sharedCopy()
MWStructArray
экземпляр, представляющий разделяемую копию базового массива MATLAB. Пример: создание разделяемой копии объекта массива структур
Создайте объект MWStructArray и затем разделяемую копию того объекта:int[] sdims = {1, 2}; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(sdims, sfields); Object C = S.sharedCopy(); System.out.println("Shared copy of structure S is:"); System.out.println(C.toString());Когда запущено, пример отображает этот вывод:
Shared copy of structure S is: 1x2 struct array with fields: f1 f2 f3
public MWClassID classID()
MWClassID.STRUCT
для MWStructArray
. Пример: получение ID класса массива структур
Создайте объект MWStructArray и отобразите ID класса:int[] sdims = {1, 2}; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(sdims, sfields); System.out.println("The class of S is " + S.classID());Когда запущено, пример отображает этот вывод:
The class of S is struct
public int numberOfFields()
Пример: получение количества полей в массиве структур
Создайте объект MWStructArray с тремя полями и отобразите количество полей:int[] sdims = {1, 2}; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(sdims, sfields); String[] str = S.fieldNames(); System.out.println("There are " + S.numberOfFields() + " fields in this structure.");Когда запущено, пример отображает этот вывод:
There are 3 fields in this structure.
public java.lang.String[] fieldNames()
Пример: получение имен полей массива структур
Создайте объект MWStructArray с тремя полями и отобразите имена полей:int[] sdims = {1, 2}; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(sdims, sfields); String[] str = S.fieldNames(); System.out.print("The structure has the fields: "); for (int i=0; i < S.numberOfFields(); i++) System.out.print(" " + str[i]);Когда запущено, пример отображает этот вывод:
The structure has the fields: f1 f2 f3
public int fieldIndex(java.lang.String fieldname)
fieldname
- имя поля, чтобы искатьpublic void set(int index, java.lang.Object element)
index
- Индекс элемента, чтобы заменить. Допустимая область значений: 1 <= индекс <= N, где N = общее количество элементов в массиве. Общее количество элементов для массива структур = numberOfElements()
*numberOfFields()
.element
- Новый элемент, чтобы заменить в индексе. Если элемент имеет тип MWArray
, ячейка в наборе индекса к разделяемой копии базового массива MATLAB. В противном случае новый массив MATLAB создан из элемента, использующего правила преобразования по умолчанию, и присвоен ячейке в индексе.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс. Пример: устанавливание значений в массиве структур
int[] sdims = {1, 2}; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(sdims, sfields); int totNumElem = S.numberOfElements() * S.numberOfFields(); for (int i = 1; i <= totNumElem; i++) { S.set(i,i*15); } int elemCnt = 1; for(int r=1; r <= sdims[0]; r++) { for(int c=1; c <= sdims[1]; c++) { System.out.println("Element : " + elemCnt++); for(int f=0; f < sfields.length; f++) { System.out.print("\t" + sfields[f] + " : "); System.out.println(S.getField(sfields[f], new int[]{r,c})); } } }Когда запущено, пример отображает этот вывод:
Element : 1 f1 : 15 f2 : 30 f3 : 45 Element : 2 f1 : 60 f2 : 75 f3 : 90
public void set(int[] index, java.lang.Object element)
index
- Массив индексов, задающих местоположение элемента, чтобы заменить. Длиной массива индекса должен быть точно numberOfDimensions()
+ 1. Первым элементом массива индекса является полевой номер на основе 1 с допустимой областью значений 1 <= индекс [0] <= numberOfFields()
. Остающиеся записи имеют допустимые области значений: 1 <= индекс [i] <= N [i], где N [i] = размер i-ой размерности.element
- Новый элемент, чтобы заменить в индексе. Если элемент имеет тип MWArray
, ячейка в наборе индекса к разделяемой копии базового массива MATLAB. В противном случае новый массив MATLAB создан из элемента, использующего правила преобразования по умолчанию, и присвоен ячейке в индексе.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public void set(java.lang.String fieldname, int[] index, java.lang.Object element)
fieldname
- Имя поля элемента, чтобы заменить.index
- Массив индексов, задающих местоположение элемента, чтобы заменить. Длиной массива индекса должен быть точно numberOfDimensions()
. Записи массива индекса имеют допустимые области значений: 1 <= индекс [i] <= N [i], где N [i] = размер i-ой размерности.element
- Новый элемент, чтобы заменить в индексе. Если элемент имеет тип MWArray
, ячейка в наборе индекса к разделяемой копии базового массива MATLAB. В противном случае новый массив MATLAB создан из элемента, использующего правила преобразования по умолчанию, и присвоен ячейке в индексе.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public void set(java.lang.String fieldname, int index, java.lang.Object element)
fieldname
- Имя поля элемента, чтобы заменить.index
- Индекс элемента, чтобы заменить. Допустимая область значений: 1 <= индекс <= N, где N = numberOfElements()
element
- Новый элемент, чтобы заменить в индексе. Если элемент имеет тип MWArray
, ячейка в наборе индекса к разделяемой копии базового массива MATLAB. В противном случае новый массив MATLAB создан из элемента, использующего правила преобразования по умолчанию, и присвоен ячейке в индексе.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public java.lang.Object get(int index)
getField(index).toArray()
.index
- из требуемого элемента. Допустимая область значений: 1 <= индекс <= N, где N = общее количество элементов в массиве. Общее количество элементов для массива структур = numberOfElements()
*numberOfFields()
.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс. Пример: Получение Данных о Массиве структур с добирается
int[] cdims = {1, 3}; MWStructArray C = new MWStructArray(cdims); Integer val = new Integer(15); int[] index2 = {1, 3}; C.set(index2, val); Object x = C.get(index2); if (x instanceof int[][]) { int[][] y = (int[][])x; System.out.println("B: Cell data C(1,3) is " + y[0][0]); }Когда запущено, пример отображает этот вывод:
B: Cell data C(1,3) is 15
public java.lang.Object get(int[] index)
getField(index).toArray()
.index
- Массив индексов, задающих местоположение требуемого элемента. Длиной массива индекса должен быть точно numberOfDimensions()
+ 1. Первым элементом массива индекса является полевой номер на основе 1 с допустимой областью значений 1 <= индекс [0] <= numberOfFields()
. Остающиеся записи имеют допустимые области значений: 1 <= индекс [i] <= N [i], где N [i] = размер i-ой размерности.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public java.lang.Object get(java.lang.String fieldname, int[] index)
getField(fieldname, index).toArray()
.fieldname
- Имя поля требуемого элемента.index
- Массив индексов, задающих местоположение требуемого элемента. Длиной массива индекса должен быть точно numberOfDimensions()
. Записи массива индекса имеют допустимые области значений: 1 <= индекс [i] <= N [i], где N [i] = размер i-ой размерности.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public java.lang.Object get(java.lang.String fieldname, int index)
getField(fieldname, index).toArray()
.fieldname
- Имя поля требуемого элемента.index
- из требуемого элемента.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public MWArray getField(int index)
MWArray
экземпляр.index
- из требуемого элемента. Допустимая область значений: 1 <= индекс <= N, где N = общее количество элементов в массиве. Общее количество элементов для массива структур = numberOfElements()
*numberOfFields()
.MWArray
экземпляр, представляющий требуемое поле. Этот MWArray
ссылка должна быть расположена путем вызова MWArray.dispose()
.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public MWArray getField(int[] index)
MWArray
экземпляр.index
- Массив индексов, задающих местоположение требуемого элемента. Длиной массива индекса должен быть точно numberOfDimensions()
+ 1. Первым элементом массива индекса является полевой номер на основе 1 с допустимой областью значений 1 <= индекс [0] <= numberOfFields()
. Остающиеся записи имеют допустимые области значений: 1 <= индекс [i] <= N [i], где N [i] = размер i-ой размерности.MWArray
экземпляр, представляющий требуемое поле. Этот MWArray
ссылка должна быть расположена путем вызова MWArray.dispose()
.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public MWArray getField(java.lang.String fieldname, int[] index)
MWArray
экземпляр.fieldname
- Имя поля требуемого элемента.index
- Массив индексов, задающих местоположение требуемого элемента. Длиной массива индекса должен быть точно numberOfDimensions()
. Записи массива индекса имеют допустимые области значений: 1 <= индекс [i] <= N [i], где N [i] = размер i-ой размерности.MWArray
экземпляр, представляющий требуемое поле. Этот MWArray
ссылка должна быть расположена путем вызова MWArray.dispose()
.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public MWArray getField(java.lang.String fieldname, int index)
MWArray
экземпляр.fieldname
- Имя поля требуемого элемента.index
- из требуемого элемента. Допустимая область значений: 1 <= индекс <= numberOfElements()
.MWArray
экземпляр, представляющий требуемое поле. Этот MWArray
ссылка должна быть расположена путем вызова MWArray.dispose()
.java.lang.IndexOutOfBoundsException
- Был предоставлен недопустимый индекс.public java.lang.Object getData()
MWArray.toArray()
на соответствующей ячейке. Пример: Получение Данных о Массиве структур с getData
Сохраните данные во всех полях и индексах объекта MWStructArray S:int[] sdims = {1, 2}; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(sdims, sfields); int count = S.numberOfElements() * S.numberOfFields(); // Initialize the structure. Integer[] val = new Integer[6]; for (int i = 0; i < count; i++) val[i] = new Integer((i+1) * 15); // Use getData to get data from the structure. System.out.println("Data read from structure array S: \n"); MWArray[] x = (MWArray[]) S.getData(); for (int i = 0; i < x.length; i++) System.out.print(" " + x[i]);Когда запущено, пример отображает этот вывод:
Data read from structure array S: 15 30 45 60 75 90
public java.lang.Object[] toArray()
MWArray.toArray()
на соответствующей ячейке. Пример: Получение Данных о Массиве структур с toArray
int[] sdims = {1, 2}; String[] sfields = {"f1", "f2", "f3"}; MWStructArray S = new MWStructArray(sdims, sfields); Integer[] val = new Integer[25]; for (int i = 0; i < 6; i++) val[i] = new Integer(i * 15); for (int i = 0; i < 2; i++) for (int j = 0; j < sfields.length; j++) S.set(sfields[j], i+1, val[j + (i * 3)]); Object[][][] x = (Object[][][]) S.toArray(); System.out.println(); System.out.println("Data read from structure array S \n"); for (int j = 0; j < 2; j++) for (int i = 0; i < x.length; i++) System.out.print(" " + ((int[][]) x[i][0][j])[0][0]);Когда запущено, пример отображает этот вывод:
Data read from structure array S 0 15 30 45 60 75
public <T> T applyVisitor(AbstractMWArrayVisitor<T> v)
protected void validate()
public static MWStructArray fromMap(java.util.Map<java.lang.String,java.lang.Object> map) throws MWException
MWException
public static MWStructArray fromBean(java.lang.Object bean) throws java.beans.IntrospectionException, MWException
java.beans.IntrospectionException
MWException
public static MWStructArray fromProperties(java.util.Properties props)
public byte[] serialize() throws java.io.IOException
java.io.IOException
- если массив не может быть сериализирован. Например, исполняемое содержимое (указатели на функцию, экземпляры класса) не может быть сериализировано.public static MWArray deserialize(byte[] data)
data
- сериализированный массив возвращен в MWArray.serializepublic int numberOfDimensions()
numberOfDimensions
в классе MWArray
public int[] getDimensions()
getDimensions
в классе MWArray
public boolean isEmpty()
public boolean isSparse()
public boolean equals(java.lang.Object obj)
public int compareTo(java.lang.Object obj)
public int hashCode()
public java.lang.String toString()
public int numberOfElements()
numberOfElements
в классе MWArray
public int numberOfNonZeros()
numberOfElements()
.numberOfNonZeros
в классе MWArray
public int maximumNonZeros()
numberOfElements()
.maximumNonZeros
в классе MWArray
public void dispose()
dispose
в интерфейсе Disposable
dispose
в классе MWArray
public int[] rowIndex()
public int[] columnIndex()
columnIndex
в классе MWArray
protected java.lang.Object readResolve() throws java.io.ObjectStreamException
java.io.InvalidObjectException
- Попытайтесь загрузить указатель неверного массива.java.io.ObjectStreamException
© 1994-2017 The MathWorks, Inc. • патентует Торговые марки •