Используйте sort
, чтобы получить outputStruct.f4
и соответствующие индексы. Используйте эти индексы, чтобы переставить inputStruct.f1
и получить outputStruct.f3
.
[outputStruct.f4, ind] = sort(inputStruct.f2);
outputStruct.f3 = inputStruct.f1(ind);
или для нескольких полей, просто переберите все поля:
[~, ind] = sort(inputStruct.f2); %Sorting according to field f2
fns = fieldnames(inputStruct); %Retrieving the names of all the fields
for k = 1:numel(fns) %Looping for each field
outputStruct.(fns{k}) = inputStruct.(fns{k})(ind);
end
%Note: This creates outputStruct with the same fields as that of inputStruct
%but that can be adjusted if needed