首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将二维单元矩阵转换为二维数值矩阵

将二维单元矩阵转换为二维数值矩阵
EN

Stack Overflow用户
提问于 2014-02-13 00:19:17
回答 1查看 259关注 0票数 0

我对MATLAB很陌生,对如何从单元格数组中获取数字数组感到困惑。根据MATLAB,我有一些矩阵result,我得到如下:

代码语言:javascript
复制
>> size(result)
ans =
    1    15

>> result
ans =
    Columns 1 through 15
    [3]    [15]    [1x2 double]    [13] ... \\ Omitted for clarity

>> iscell(result)
ans =
    1

因此,结果似乎是维为1x15的二维单元阵列,但也有一个子数组(?)在其中,由[1x2 double]表示。在这个特殊的例子中,让我们假设只有其中一个[1x2 double]元素。换句话说,result由14个单元素列和一个多元素列组成。

我检查了文档,根据此页,有一个名为cell2mat的方法。不幸的是,它不能完全满足我的需要,因为它输出了一个1x16数字数组:

代码语言:javascript
复制
>> cell2mat(result)
ans =
    3    15    10    7    13 ... \\ Omitted for clarity

在这个例子中,10和7是组成[1x2 double]的元素,只是不知出于什么原因,在打印单元格数组时,MATLAB没有指出这一点。

问题:在保留分组的同时,是否可以将此矩阵转换为数组的数字数组?具体来说,我希望得到一些表格[3,15,10,7,13,.]让这些都是数字的。这个是可能的吗?至于它的价值,我使用MATLAB和matlabcontrol的一些Java代码,而该软件似乎需要真正的数组数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-13 00:36:10

在matlab中,没有类似于‘java类型’数组的东西。你可以拥有matlab自己的单元数组,这就是你现在所拥有的。此外,在matlab中没有将单元数组“直接”转换为java数据结构(有关将matlab数据转换为java的更多信息,请查看这里 )。

我很快就看到了三种你可以考虑的方法:

  1. results转换为数组的字符串表示,将此字符串传递给java,然后将其转换回任何您想要的结构。
  2. 由于单元格作为对象数组(即Object[])进入java,所以可以在java中使用这些数组,使它们成为您想要的。
  3. 您还可以在matlab中直接创建java结构,即在将它们传递到java类/方法之前。因此,您可以将results单元转换为一些java数组(例如,数组的java数组)或其他什么。这是可能的,因为在matlab中,您可以使用java代码和java数据结构。有关在matlab中使用java的更多信息,请查看这里
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21742823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档