MATLAB®自动将数组转换为。net类型,如MATLAB原始类型转换表.要传递字符数组的数组,请创建单元格数组。对于所有其他类型,使用MATLABNET.createArray
函数。
MATLAB创建一个。net数组,将元素从MATLAB数组复制到。net数组,并将其传递给c#。
要在MATLAB中使用。net数组,请调用相应的MATLAB转换函数,如将原始。net类型的数组转换为MATLAB类型.例如,假设。net方法返回netArr
类型的系统。Int32 []
:
netArr = Int32[] with properties: Length: 5 LongLength: 5 Rank: 1 SyncRoot: [1×1 System. netArr] with properties: Length: 5 LongLength: 5 Rank: 1 SyncRoot: [1×1 System. netr]Int32[]] IsReadOnly: 0 IsFixedSize: 1 IsSynchronized: 0
将数组转换为MATLAB的数组int32
.
B = int32 (netArr)
B = 1×5 int32行向量1 2 3 4 5
结合元素B
用MATLAB数组。
A = int32([11 12 13 14 15]);A + B
Ans = 1×5 int32 row vector 12 14 16 18 20
使用下标访问。net数组的元素,就像使用MATLAB数组一样。
您不能像在MATLAB中那样使用单个下标(线性索引)来引用多维。net数组的元素,如数组索引.必须为。net数组的每个维度指定索引。
只能使用标量索引来访问。net数组的元素。冒号操作符,在创建、连接和扩展矩阵,不支持。金宝app
或者,您可以使用。net数组的元素集
和得到
实例的功能。当使用集
或得到
你必须使用c#数组索引,它是基于零的。
例如,创建两个系统。字符串
数组,使用集
功能和直接赋值:
d1 = NET.createArray (system . string’”,3);d1。集(0,' 1 ');d1。集(1、2);d1。集(2,' 3 ');d2 = NET.createArray (system . string’”,3);d2(1) =“1”;d2(2) =“2”; d2(3) = 'zero';
要比较每个数组中第一个元素的值,输入:
System.String.Compare (d1 (1) d2.Get (0))
MATLAB显示0
,意思是字符串是相等的。
在MATLAB命令中使用。net锯齿数组之前,必须对其进行转换。
如果阵列的形状为矩形,则使用相应的MATLAB数值函数。
如果数组不是矩形的,则使用细胞
函数。
如果交错数组是多维的,则必须分别转换每个维度中的数组。