Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Error when converting several arrays from struct to table

조회 수: 1 (최근 30일)
Espen Mikkelsen
Espen Mikkelsen 2018년 4월 9일
마감: Espen Mikkelsen 2018년 4월 12일
Im trying to convert some arrays called var1, var2, var3 etc.in a struct variable to table. I have used struct2table like this:
struct2table(out.var1,out.var2,out.var3);
When I do that, I get following message:
"S must be a scalar structure, or a structure array with one column or one row".
What is the reason for that?

답변 (1개)

Walter Roberson
Walter Roberson 2018년 4월 9일
You say that you are converting those arrays, but what kinds of arrays are they? struct2table() requires that the first argument be a scalar structure or a structure vector, and that the arguments after that are name/value pairs.
I suspect you want
array2table(out.var1, out.var2, out.var3, 'VariableNames', {'var1', 'var2', 'var3'})
or more likely
array2table(out.var1(:), out.var2(:), out.var3(:), 'VariableNames', {'var1', 'var2', 'var3'})
  댓글 수: 2
Peter Perkins
Peter Perkins 2018년 4월 11일
Walter, array2table takes just one array. I think you were thinking of
table(out.var1, out.var2, out.var3, ...)
But I think maybe just
struct2table(out)
is what's needed.
Walter Roberson
Walter Roberson 2018년 4월 11일
Ah, good catch
array2table([out.var1(:), out.var2(:), out.var3(:)], 'VariableNames', {'var1', 'var2', 'var3'})

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by