2016-07-20 5 views
0

Ich verwende MatLab R2015a, und das Software-Tool, das ich bekam, ist in R2008a entwickelt. Das Tool enthält alle .m Dateien.bar Funktion Ausgabe Eigenschaft "Kinder" in MatLab vor 2014

handles.bars = bar(1:length(indxSubTypeSorted), processes(indxSubTypeSorted, i), 'FaceColor', colors(j, :), 'EdgeColor', edgeColor, 'BarWidth', 0.4); 

Die Ausgabe für diese Linie auf R2015a hat leere Eigenschaft für

'Kinder'

get (handles.bars (1), 'Kinder')

ans =

0x0 empty GraphicsPlaceholder array. 

Das in R2008a entwickelte Softwaretool verwendet jedoch den Wert dieser Eigenschaft.

Könnte mir bitte jemand sagen, was der Wert wäre, wenn ich dies auf R2008a ausführen würde, und wie finde ich den richtigen Wert von R2015a?

+1

Was das Software-Tool ist mit den Kindern des Balkendiagramms zu tun? Sie liefern nicht viele nützliche Informationen ... – excaza

Antwort

0

Verwenden Sie zum Anpassen des Diagramms die Eigenschaften des tatsächlichen Objekts. Wie hier angegeben, haben sich die Dinge mit und nach R2014b geändert. http://nl.mathworks.com/help/matlab/graphics_transition/why-is-the-children-property-empty-for-some-objects.html Sie werden keine Nummernkennungen mehr finden. Daher gilt für beide Matlab-Versionen:

handles.bars = bar(1:10, rand(10), 'FaceColor', [rand, rand, rand], 'EdgeColor', [rand, rand, rand], 'BarWidth', 0.4); 

Dann kommt es darauf an, was Ihr Code danach macht. Angenommen, Sie möchten FaceColor, in Matlab R2008 ändern:

gc = get(handles.bars(1),'children') 
set(gc,'FaceColor',[rand rand rand]); 

Während in Matlab R2014b:

handles.bars(1).FaceColor = [rand rand rand]; 
+0

Bitte sehen Sie sich den Antwortteil an. Der Beitrag ist zu lang, um von hier aus gepostet zu werden. Der Link, den du mir gegeben hast, sagt mir nicht, wie man Werte für Kinder findet. – Haiying

+0

Ich änderte meine Antwort. Es hängt jedoch auch davon ab, was der Code getan hat, nachdem er die Handles der Kinder erhalten hat. – giosans