Bir yapı dizisini matrise dönüştürmeye çalışıyorum. Yapının her alanı, 520000 satıra kadar ulaşabilen bir vektör saklar. Tek bir yapı dizisinde 20'ye kadar alan olabilir, ancak satırların sayısı alanların genelinde aynıdır. Bir aşağı olarak Yapı dizisini matrise dönüştürme
örnekte, her alan bir tam sayı olduğu yapıs
dikkate ölçekli: İstenen çıktıda
s=struct('a',1,'b',2);
s(2)=struct('a',3,'b',4);
s=s';
, her bir alan bir sütuna karşılık gelir. Bir dolaylı olarak bu yaklaştı
desiredOutput = [1 2; 3 4];
: Ancak
cell2mat(struct2cell(s))'
, bu i bulan iki dönüşümler içerir b
değerlerinin ikinci olacak ise a
değerleri, birinci sütunda gösterilir Yapımın iyi huylu yapısı nedeniyle gereksiz.
fields = fieldnames(s);
nrows = size(s,1);
ncols = numel(fields);
desiredOutput = nan(nrows,ncols);
for jj=1:ncols
desiredOutput(:,jj) = [s.(fields{fields(jj)})]';
end
Bir struct2mat
fonksiyonu bulmak için ümit ama yok:
Bu ilginç bir yaklaşım, ancak biraz farklı bir durum için. Bu yaklaşımın çalışması için aynı alan adlarına sahip olmanız gerekir, benim kullanımımda ise farklıdır, ancak paylaşım ve paylaşım için teşekkürler – brodoll