【发布时间】:2017-04-01 09:21:21
【问题描述】:
我在 MATLAB 中有一个代码,最后给了我一个矩阵。我需要将这个矩阵带到 Java 并在那里使用它,但是当矩阵很大时,在 Java 中逐个元素地重写它真的很困难。所以我在MATLAB中写了这段代码:
function JavaMatrix = generateJavaFormatedMatrix(matrix, name)
for i=1:size(matrix,1)
for j=1:size(matrix,2)
JavaMatrix(i,j) = char([name '[' num2str(i-1) ']' '[' num2str(j-1) ']=' num2str(matrix(i,j)) ';' ' '])
end
end
end
我希望它对我有用,然后我只需要复制数组并将其粘贴到 Java 中。比如我在写如下命令的时候想让上面的代码做什么:
java_matrix = generateJavaFormatedMatrix(eye(3),'A')
下面是
A[0][0]=1; A[0][1]=0; A[0][2]=0;
A[1][0]=0; A[1][1]=1; A[1][2]=0;
A[2][0]=0; A[2][1]=0; A[2][2]=1;
但是,我得到的是以下错误:
Subscripted assignment dimension mismatch.
Error in generateJavaFormatedMatrix (line 5)
JavaMatrix(i,j) = char([name '[' num2str(i-1) ']' '[' num2str(j-1) ']=' num2str(matrix(i,j)) ';' ' '])
非常感谢任何帮助。
【问题讨论】:
-
JavaMatrix(i,j)只是一个元素(字符)。您正在为其分配一个完整的字符串。 -
为什么需要这种方法而不是仅导出到中间文件?还是直接在java中导入?
-
@beaker,为什么不能将字符串分配为数组元素?
-
@excaza,因为我的 Java 代码最终会在 Android 设备上运行,而且我不希望每次都更新文本文件以将其发送到手机。
-
试试这个:
S = 'Hello, World!"。现在看看S的大小。 13 个字符将无法容纳在一个字符的空间中。