我有extrinsic function,返回mxArray
到webread()
。这个mxArray
实际上应该是一个结构,以便我可以访问它并读取其中的数据。问题是它有一个动态大小,所以我不能只是静态地定义它的大小。
这是我的代码:
function out = getDataFromCloud()
coder.extrinsic('webread');
coder.extrinsic('weboptions');
url = 'theurl';
options = weboptions('ContentType','json');
data_conv = webread(url);
disp(data_conv(1:1).code); %At this point it fails, because '.code' is not
%possible with an mxArray
我对Matlab很新,所以请你亲切一点。感谢您提供的每一个答案!
EDIT1
我创建了一些虚拟数据,因此您可以自己测试问题。 dummy data link。说明:在虚拟数据中,category_0
的数量始终为3,因此有code
,subcat_0
和subcat_1
。在这些变量中,有一些变量是静态的,但也有变量只能保存动态填充的数组。
上面的代码使您能够实际执行重现错误所需的一切。只需在像这样的Matlab simulink模型中使用getDataFromCloud()
。
有必要的是,您使用我提供的网址更改'theurl'
。代码不需要任何更改,应该重现问题。如果没有,只需写评论。
EDIT2
到目前为止,我已经找到了一种方法来完成我想用Matlab S-Function做的所有事情。如果你有兴趣,我为它创建了一个repo。 问题仍然存在,我很乐意听到答案。