com.mathworks.toolbox.javabuilder.MWJavaObjectRef 类
命名空间: com.mathworks.toolbox.javabuilder
Java 类来创建一个引用 Java 对象的 MATLAB 数组
描述
声明
public class MWJavaObjectRef extends MWArray
MWJavaObjectRef 是 MWArray 的一个特殊子类,可用于创建引用 Java 对象的 MATLAB 数组
实现的接口:MWComponentOption、java.io.Serializable、java.lang.Cloneable、java.lang.Comparable
创建对象
构造函数
MWJavaObjectRef(java.lang.Object o)
实例化一个新的组件对象。
属性
公共属性
一种方便、高效且一致的方式来表示空数组,如下所示:
public static final MWArray EMPTY_ARRAY
方法
applyVisitor |
此方法是抽象的,返回由类型参数<T>指定的类型。它以 参数:
返回:
|
classID |
返回此数组的 MATLAB 类型。 由以下指定: 返回:该数组的 MWClassID。 示例: 返回给定数组的 MATLAB 类型: Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
System.out.println("ClassID of A is " + A.classID());
MWArray.disposeArray(A);ClassID of A is opaque |
clone |
示例:克隆(深度复制)数组 Hashtable<tring,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
Object C = A.clone();
System.out.println("A = " + A.toString() +
", Clone of A = " +
C.toString());
myHash.put("c", new Integer(7));
System.out.println("After change: A = " + A.toString() +
", Clone of A = " +
C.toString());
A.set(new Integer(12));
System.out.println("After set: A = " + A.toString() +
", Clone of A = " +
C.toString());
MWArray.disposeArray(A);
MWArray.disposeArray(C);A = {b=5, a=3}, Clone of A = {b=5, a=3}A = {b=5, a=3, c=7}, Clone of A = {b=5, a=3, c=7}A = 12, Clone of A = {b=5, a=3, c=7}覆盖:
返回:MWArray 实例代表底层 MATLAB 数组的深度复制。 抛出:
|
columnIndex | 此方法返回一个数组,其中包含底层 MATLAB 数组中每个元素的列索引。 在以下示例中,稀疏 MWArray(由 (2,1) 50 (1,2) 10 (2,2) 60 (1,5) 40 (2,5) 90 示例:获取稀疏 MWArray 的列索引 获取稀疏数组元素的列索引: System.out.print("Columnindicesare:");
int[]colidx=A.columnIndex();
for(inti=0;i<5;i++)
System.out.print(colidx[i]+"");
System.out.println();Column indices are: 1 2 2 5 5 由以下指定: 返回:索引数组。 |
compareTo |
此方法将 MWArray 对象与输入对象进行比较。如果 MWArray 对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。 示例:使用 compareTo 比较 MWArray 创建 MWArray 对象的共享副本,然后将其与原始对象进行比较。返回值为零表示两个对象相等: Object S = A.sharedCopy();
if (A.compareTo(S) == 0)
System.out.println("Matrix S is equal to matrix A");Matrix S is equal to matrix A 由以下指定: 由以下指定: 参数:
|
dispose |
释放此数组包含的原生 MATLAB 数组。 由以下指定: 由以下指定: |
equals |
指示其他数组是否与此数组相等。 示例:指示数组是否相等:
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
Hashtable<String,Integer> myHash2 = new Hashtable<String,Integer>();
myHash2.put("a", new Integer(3));
myHash2.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
MWJavaObjectRef B = new MWJavaObjectRef(myHash);
MWJavaObjectRef C = new MWJavaObjectRef(myHash2);
System.out.println("Do A and B refer to the same object? " + A.equals(B));
System.out.println("Do A and C? " + A.equals(C));
MWArray.disposeArray(A);
MWArray.disposeArray(B);
MWArray.disposeArray(C);Do A and B refer to the same object? true Do A and C? false 由以下指定: 参数:
|
get |
示例:获取有关引用对象的信息 Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
System.out.println("A.get() = " + A.get());
System.out.println("Class of referenced object is " + A.get().getClass().toString());
System.out.println("Class of A is " + A.getClass().toString());
MWArray.disposeArray(A);A.get() = {b=5, a=3}
Class of referenced object is class java.util.Hashtable
Class of A is class com.mathworks.toolbox.javabuilder.MWJavaObjectRef返回:引用的对象。 |
getData |
返回一个一维数组,其中包含底层 MATLAB 数组中数据的副本。返回数组的元素按照默认转换规则进行转换。如果底层 MATLAB 数组是复数类型,则 getData 返回实部。如果底层数组是元胞或结构体数组,则在每个元胞上递归调用 toArray。 示例:使用 getData 获取 MWArray 值 从 MWArray 对象 A 获取数据,将类型从 Object 转换为 int: System.out.println("Data read from matrix A:");
int[] x = (int[]) A.getData();
for (int i = 0; i < x.length; i++)
System.out.print(" " + x[i]);
System.out.println();Data read from matrix A: 1 7 13 2 8 14 3 9 15 4 10 16 5 11 17 6 12 18 由以下指定: 返回:按列顺序存储的元素的一维数组。对于非稀疏数组,返回数组的长度等于 MWArray.numberOfElements();对于稀疏数组,返回数组的长度等于 MWArray.numberOfNonZeros()。 |
getDimensions |
返回包含此数组每一维的大小的数组。此示例使用 3×6 的 MWNumericArray 对象 A,由以下 Java 代码构造: int[][] Adata = {{ 1, 2, 3, 4, 5, 6},
{ 7, 8, 9, 10, 11, 12},
{13, 14, 15, 16, 17, 18}};
MWNumericArray A = new MWNumericArray(Adata, MWClassID.INT32);示例:获取 MWArray 的数组维度 int[] dimA = A.getDimensions();
System.out.println("Dimensions of A are " +
dimA[0] + " x " + dimA[1]);Dimensions of A are 3 x 6 由以下指定: 返回:包含每个维度大小的数组。 |
hashCode |
返回此数组的哈希码值。 示例:返回数组的哈希值 Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(8));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
int h = A.hashCode();
System.out.println("Hash of A is 0x" + Integer.toHexString(h));
MWArray.disposeArray(A);Hash of A is 0xffffff33 由以下指定: |
isEmpty |
如果数组对象不包含元素,则此方法返回 true,否则返回 false。此示例使用 3×6 的 MWNumericArray 对象 A,由以下 Java 代码构造: int[][] Adata = {{ 1, 2, 3, 4, 5, 6},
{ 7, 8, 9, 10, 11, 12},
{13, 14, 15, 16, 17, 18}};
MWNumericArray A = new MWNumericArray(Adata, MWClassID.INT32);示例:测试空的 MWArray 如果数组对象 A 为空数组,则显示一条消息。否则,显示 A 的内容: if (A.isEmpty())
System.out.println("Matrix A is empty");
else
System.out.println("A = " + A.toString());A= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 由以下指定: 返回:如果为空则 |
isSparse |
如果 MWArray 对象是稀疏对象,则此方法返回 true,否则返回 false。 以下示例使用的由 newSparse 方法创建的稀疏 MWArray 的内容为: (2,1) 50 (1,2) 10 (2,2) 60 (1,5) 40 (2,5) 90 示例:测试 MWArray 的稀疏性 测试先前创建的 MWArray 对象 A 的稀疏性: if (A.isSparse())
System.out.println("Matrix A is sparse");Matrix A is sparse 由以下指定: 返回:如果为空则 |
maximumNonZeros |
返回稀疏数组的分配容量。如果基础数组是非稀疏的,则此方法返回与 由以下指定: 返回:当前分配的稀疏数组中的非零元素的数量。 示例:显示数组中非零元素的最大数量 Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
System.out.println("Maximum number of nonzero elements in A is " + A.maximumNonZeros());
MWArray.disposeArray(A);Maximum number of nonzero elements in A is 1 |
numberOfDimensions |
返回此数组的维数。此示例使用 3×6 的 MWNumericArray 对象 A,由以下 Java 代码构造: int[][] Adata = {{ 1, 2, 3, 4, 5, 6},
{ 7, 8, 9, 10, 11, 12},
{13, 14, 15, 16, 17, 18}};
MWNumericArray A = new MWNumericArray(Adata, MWClassID.INT32);示例:获取 MWArray 的维数 显示数组对象 A 的维数: System.out.println("Matrix A has " + A.numberOfDimensions() +
" dimensions");Matrix A has 2 dimensions 由以下指定: 返回:维度数。 |
numberOfElements |
返回此数组中元素的总数。 示例:返回数组中元素的数量 Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
System.out.println("Number of elements in A is " + A.numberOfElements());
MWArray.disposeArray(A);Number of elements in A is 1 由以下指定: 返回:元素的数量。 |
numberOfNonZeros |
返回稀疏数组中非零元素的数量。如果基础数组是非稀疏的,则此方法返回与 由以下指定: 返回:稀疏数组中当前非零元素的数量。 |
rowIndex |
此方法返回一个数组,其中包含底层 MATLAB 数组中每个元素的行索引。 在以下示例中,稀疏 MWArray(由 newSparse 方法创建)的内容为: (2,1) 50 (1,2) 10 (2,2) 60 (1,5) 40 (2,5) 90 由以下指定: 返回:索引数组。 |
set |
用指定元素替换此数组中指定的基于 1 的索引数组处的元素。 由以下指定: 参数:
|
set |
用指定元素替换此数组中位于指定从 1 开始的偏移量的元素。提供比 public void set(int[] index, Object element) 更好的性能。 示例:设置 MWArray 值 修改 MWArray 对象 A 中元素 (2, 4) 的数据: int[] index = {2, 4};
A.set(index, 555);
Object d_out = A.get(index);
System.out.println("Data read from A(2,4) is " +
d_out.toString());Data read from A(2,4) is 555 由以下指定: 参数:
|
set |
示例:将数组设置为指定值 Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
System.out.println("A = " + A.toString());
A.set(new Integer(12));
System.out.println("After set(), A = " + A.toString());
MWArray.disposeArray(A); A = {b=5, a=3}A = 12 参数:
|
setData |
由以下指定: |
sharedCopy |
示例:创建数组的共享副本 Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
Object S = A.sharedCopy();
System.out.println("A = " + A.toString() +
", Shared copy of A = " +
S.toString());
myHash.put("c", new Integer(7));
System.out.println("After change: A = " + A.toString() +
", Shared copy of A = " +
S.toString());
MWArray.disposeArray(A);
MWArray.disposeArray(S);A = {b=5, a=3}, Shared copy of A = {b=5, a=3}A = {b=5, a=3, c=7}, Shared copy of A = {b=5, a=3, c=7}由以下指定: 返回:MWArray 实例表示底层 MATLAB 数组的共享副本。 |
toArray |
返回一个包含底层 MATLAB 数组中数据副本的数组。返回的数组具有与底层 MATLAB 数组相同的维度。返回数组的元素按照默认转换规则进行转换。如果底层 MATLAB 数组是复数数值类型,则 toArray 返回实部。如果底层数组是稀疏的,则返回数组的完整表示。在具有较大行和列维度的稀疏数组上调用 toArray 时应小心,因为此操作可能会耗尽系统内存。如果底层数组是元胞或结构体数组,则在每个元胞上递归调用 toArray。 由以下指定: 返回:与 MATLAB 数组具有相同维数的数组。 示例:返回包含底层数组数据副本以及有关数组的附加信息的数组 Integer myInt = new Integer(2);
System.out.println("myInts = " + myInt.toString());
MWJavaObjectRef A = new MWJavaObjectRef(myInt);
Object[] B = A.toArray();
System.out.println("Array form is an instance of " + B.getClass().toString());
System.out.println("B = " + B);
System.out.println("Each element is an instance of " + B[0].getClass().toString());
System.out.println("B[0] = " + B[0]);
System.out.println("A is an instance of " + A.getClass().toString());
MWArray.disposeArray(A);myInts = 2 Array form is an instance of class [Ljava.lang.Object; B = [Ljava.lang.Object;@1d53f5b Each element is an instance of class java.lang.Integer B[0] = 2 A is an instance of class com.mathworks.toolbox.javabuilder.MWJavaObjectRef |
toString |
示例:返回数组的字符串表示形式 Hashtable<String,Integer> myHash = new Hashtable<String,Integer>();
myHash.put("a", new Integer(3));
myHash.put("b", new Integer(5));
MWJavaObjectRef A = new MWJavaObjectRef(myHash);
System.out.println("String representation of A is " + A.toString());
MWArray.disposeArray(A);String representation of A is {b=5, a=3}由以下指定: |
unwrapJavaObjectRefs |
示例: MWJavaObjectRef A = new MWJavaObjectRef(new Integer(12));
MWJavaObjectRef B = new MWJavaObjectRef(new Integer(104));
Object[] refArr = new Object[2];
refArr[0] = A;
refArr[1] = B;
Object[] objArr = MWJavaObjectRef.unwrapJavaObjectRefs(refArr);
System.out.println("refArr referenced the objects: " + objArr[0] + " and " + objArr[1]);refArr referenced the objects: 12 and 104 返回:引用所指的对象数组。 |
unwrapJavaObjectRefs |
示例: MWJavaObjectRef A = new MWJavaObjectRef(new Integer(12));
MWJavaObjectRef B = new MWJavaObjectRef(new Integer(104));
Object[] refArr = new Object[2];
refArr[0] = A;
refArr[1] = B;
Object[] objArr = MWJavaObjectRef.unwrapJavaObjectRefs(refArr);
System.out.println("refArr referenced the objects: " + objArr[0] + " and " + objArr[1]);refArr referenced the objects: 12 and 104 参数:
返回:引用所指的对象数组。 |
从类 com.mathworks.toolbox.javabuilder.MWArray 继承的方法。
disposeArray |
此方法会销毁输入对象中包含的任何原生 MATLAB 数组并释放它们占用的内存。这是类的静态方法,因此不需要引用类的实例来调用。如果输入对象实现了 示例:构造 MWNumericArray 对象 MWArray[] MArr = new MWArray[10];
for (int i = 0; i < 10; i++)
MArr[i] = new MWNumericArray();
MWArray.disposeArray(MArr);参数:
|
从类 java.lang.Object 继承的方法。
finalize |
当垃圾回收确定没有更多对此对象的引用时,由垃圾回收器对该对象调用。 |
getClass |
返回此对象的运行时类。 |
notify |
|
notifyAll |
唤醒正在等待此对象的监视器的所有线程。 |
wait |
使当前线程等待,直到另一个线程调用此对象的 |
版本历史记录
在 R2006a 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)