2016-06-09 9 views
-1

Ich habe eine Strukturvariable in MATLAB lässt sagen X der Größe 1x25. X hat ein Feld in Y, das eine Matrix der Größe 67x3 ist. Wie kann ich nur die erste Spalte von Feld Y einem anderen Vektor zuweisen, sagen wir Z? Mit anderen Worten, ich möchte Z az eine Matrix der Größe 67x25 haben, die jede Spalte in Z X (i) .Y (:, 1) und i = 1: 25. Ich suche nach ein oder zwei Zeilenbefehlen, keine for-Schleife, um dies zu tun.Wie auf Strukturelemente in Matlab zugreifen

Vielen Dank!

+0

So möchten Sie die erste Spalte jeden Feld 'Y' in der Struktur Array 'X' mit einer Spalte in 'Z' ersetzen? Es ist ein bisschen verwirrend mit dem, was Sie wollen. – rayryeng

+0

Versuchen Sie, das struct-Array wie hier beschrieben in ein Zellen-Array zu konvertieren: http://stackoverflow.com/questions/18000072/accessing-data-in-structures-witout-loops –

Antwort

2

Comma-separated list Expansion mit einer Post Maskierung sollte funktionieren:

>> X = repmat(struct('Y',rand(67,3)),1,25); 
>> Z = [X.Y]; Z = Z(:,1:3:end); 
>> size(Z) 
ans = 
    67 25 
Verwandte Themen