编码&在matlab中解码2D单元阵列与原始数据格式不匹配

时间:2017-10-11 00:47:06

标签: .net json matlab multidimensional-array

我正在使用Matlab 2017b,并且编码和解码二维单元阵列时遇到一些麻烦;当我编码和解码时,我获得了与原始输出不同的输出。

data = 
  279x62 cell array

jsonencode(data) = 
  ['cell1','cell2','cell3' ... etc ]

jsondecode(ans) = 
  17298x1 cell array

我也尝试将矩阵转换为字符串,但是回到了一个由62x1单元组成的279x1调用数组。有没有什么办法可以格式化数据,以确保从输入到jsonencode的jsondecode生成2D数组?

最终,我将编码的json对象传递给.NET应用程序,但我需要将其解码为2D数组。我觉得必须有一些简单的东西我可以忽略,但我很困惑,任何建议都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

一个简单的reshape应该这样做。请注意,jsonencode将展平输入的2D单元阵列,以便将所有列堆叠到单个阵列中。因此,使用此输出的jsondecode将返回1D单元阵列。因此,将其重组为279 x 62的二维矩阵。假设您的工作区中已创建data

% Encode the data
D = jsonencode(data);

% Decode it
out = reshape(jsondecode(D), size(data));

请注意,我使用size (data)而不是对整形的尺寸进行硬编码,以便它可以在创建JSON文本之前适应data单元格数组的任何大小。< / p>