Generalizing the access to an array of structures in MATLAB
This generalized architecture allows her to not use switch case and other flow control. The strings that represent the fields of interest could come from a GUI making her GUI able to process in many arbitrary and customizable ways.
clear
clc
s(1).condition = 1;
s(2).condition = 1;
s(3).condition = 2;
s(4).condition = 2;
s(1).velocity = [11:21];
s(2).velocity = [22:32];
s(3).velocity = [33:43];
s(4).velocity = [44:54];
s(1).acceleration = [111:121];
s(2).acceleration = [122:132];
s(3).acceleration = [133:143];
s(4).acceleration = [144:154];
fieldToFilterBy = 'condition';
valueToFilterBy = 2;
fieldToProcess = 'acceleration';
processingFunction = @mean;
listOfFilterValues = [s.(fieldToFilterBy)];
vi = (listOfFilterValues == valueToFilterBy)
filteredStructure = s(vi)
mergedFieldOfInterest = [filteredStructure(:).(fieldToProcess)]
processedFilteredData = feval(processingFunction, mergedFieldOfInterest)
コメント
コメントを残すには、ここ をクリックして MathWorks アカウントにサインインするか新しい MathWorks アカウントを作成します。