主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

JavaMATLAB 之间的数据转换规则

JavaMATLAB 的转换

下表列出了 Java® 数据类型到 MATLAB® 类型的数据转换规则。转换规则适用于列出类型的标量、向量、矩阵和多维数组。

这些规则不仅适用于调用您自己的方法时,也适用于调用属于 MWArray 类的构造函数和工厂方法时。

注意

当您调用 MWArray 类方法构造函数时,提供特定的数据类型会导致编译器转换为该类型而不是默认类型。

JavaMATLAB 转换规则

Java 类型MATLAB 类型

double

double

float

single

byte

int8

int

int32

short

int16

long

int64

char

char

boolean

logical

java.lang.Double

double

java.lang.Float

single

java.lang.Byte

int8

java.lang.Integer

int32

java.lang.Long

int64

java.lang.Short

int16

java.lang.Number

double

注意

上面未列出的 java.lang.Number 子类将转换为 double

java.lang.Boolean

logical

java.lang.Character

char

java.lang.String

char

注意

Java 字符串被转换为 1 × Nchar 数组,其中 N 等于输入字符串的长度。

Java 字符串数组 (String[]) 被转换为 M × Nchar 数组,其中 M 等于输入数组中元素的数量,N 等于数组中任何字符串的最大长度。

String 的高维数组的转换方式类似。

一般来说,将 N 维的 String 数组转换为 N+1 维的 char 数组,并使用适当的零填充,其中提供的字符串具有不同的长度。

MATLABJava 的转换

下表列出了 MATLAB 数据类型到 Java 类型的数据转换规则。

注意

转换规则适用于列出类型的标量、向量、矩阵和多维数组。

MATLABJava 转换规则

MATLAB 类型Java 类型(原始)Java 类型(对象)
cell不适用

Object

注意

元胞数组以 MWArray 数组的形式构建和访问。

structure不适用

Object

注意

结构体数组被构造为 MWArray 数组并进行访问。

charcharjava.lang.Character
doubledoublejava.lang.Double
singlefloatjava.lang.Float
int8bytejava.lang.Byte
int16short

java.lang.Short

int32intjava.lang.Integer
int64longjava.lang.Long
uint8byte

java.lang.Byte

Java 没有无符号类型来表示 MATLAB 中使用的 uint8。构造和访问无符号类型的 MATLAB 数组需要转换。

uint16

short

java.lang.short

Java 没有无符号类型来表示 MATLAB 中使用的 uint16。构造和访问无符号类型的 MATLAB 数组需要转换。

uint32int

java.lang.Integer

Java 没有无符号类型来表示 MATLAB 中使用的 uint32。构造和访问无符号类型的 MATLAB 数组需要转换。

uint64long

java.lang.Long

Java 没有无符号类型来表示 MATLAB 中使用的 uint64。构造和访问无符号类型的 MATLAB 数组需要转换。

logicalbooleanjava.lang.Boolean
函数句柄不支持
Java 类不支持
用户类不支持

不支持的 MATLAB 数组类型

Java 没有无符号类型来表示 MATLAB 中使用的 uint8uint16uint32uint64 类型。构造和访问无符号类型的 MATLAB 数组需要转换。