【问题标题】:MATLAB 'cat()' function returning different matrix sizeMATLAB 'cat()' 函数返回不同的矩阵大小
【发布时间】:2012-04-16 18:18:30
【问题描述】:

如果我执行s.device_macs,那么我会返回一个<1x3503 cell>,所以我希望这是我的连接的输出,但我有两件事我在使用时不确定:a = cat(2,s.device_macs)

连接之前我使用了cat(1,x),但这不起作用但是数字2让它运行,第二件事是它返回一个,显然比我不尝试的时候大得多并使用cat()。

非常感谢,来自 MATLAB 新手!

【问题讨论】:

    标签: matlab concatenation concat cat


    【解决方案1】:

    s.device_macs 是一个 1 行(第一维)x 3503 列(第二维)向量。这就是为什么您必须在cat(2,s.device_macs) 中指定 2,以便它沿第二维(列)连接。我的猜测是 1x603326 结果是一个包含 603326 个字符(在列中)的字符串,但不完全确定......希望其他人可以在这里提供帮助。

    【讨论】:

      【解决方案2】:

      我使用了一种作弊方法来解决这个问题。正如我提到的,ans 是正确的,所以我决定只使用它:

      s.device_macs; % This gives the answer of <1x3503 cell>
      macId = ans; % I now make macId copy answer
      clear ans; % Now I wipe ans leaving me with just macId
      

      我知道与仅了解语言相比,这不是一种有效的编码方法,但找到胶带式的修复很有趣:P。

      【讨论】:

      • 试试macId = { s.device_macs }; ?
      • 这些有什么作用,或者我如何找到一些关于此的帮助文本,以便我知道它为什么给我它正在做的答案?
      • 我的数据中有 106 个不同的人,我想我明白了,使用 {} 大括号会创建一个矩阵,每个人都有单独的条目,因为我可以做到 s(x).device_macs其中 x 在 1:106 中,在这种情况下,macId = { s.device_macs }; 将其作为 返回。这听起来对了一半吗?干杯!
      • {} 不会创建矩阵,它会创建一个元胞数组。 [] 创建一个矩阵。主要区别在于矩阵必须是正方形且具有统一类型,而元胞数组可以是锯齿状并包含不同类型。
      猜你喜欢
      • 1970-01-01
      • 2015-09-20
      • 2017-09-29
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2017-11-18
      相关资源
      最近更新 更多