如何从结构中获取所有数据?

5 matlab struct

我从Web服务得到了一个结果,MatLab很高兴地通知它是1x1结构.但是,当我尝试显示它时(通过输入receivedData并按下enter)我会看到这个:

ResponseData: [5x1 struct]
Run Code Online (Sandbox Code Playgroud)

同样很高兴,我输入以下内容,试图让我看到数据:

struct2array(responseData)
Run Code Online (Sandbox Code Playgroud)

我只得到一堆(不是五个,超过五个)字符串,这些字符串可能是所提供数据列的名称标题.

如何从这种结构中获取所有数据?

小智 3

您可以使用fieldnames从结构中获取数据,然后使用getfield函数迭代显示数据。例如:

structvariable = struct('a',123,'b',456,'c',789);
dataout = zeros(1,length(structvariable)) % Preallocating data for structure
field = fieldnames(a);

for i = 1:length(structvariable)
    getfield(structvariable,field{i})
end
Run Code Online (Sandbox Code Playgroud)

请记住,以单元格getfield形式给出数据,而不是矩阵形式