2
編寫一個函數
sortStruct
,它接收結構數組 ,然後用輸入字段中的值對結構數組排序。 如果這些值是數字,則函數將它們從最低排序到最高排列爲 。如果值是字符,則函數按字母順序排列 單詞(例如「蘋果」在 「蘋果」之前)。如果該字段不存在於結構數組中,則函數返回字符串'Invalid Field Name'。如何在不知道字段數量的情況下更改結構中每個字段值的順序? (MatLab)
這是我到目前爲止有:
function [ structsort ] = sortStruct(strucArray, fname)
if isfield(strucArray, fname) ~= '1'
structsort = 'Invalid Field Name';
end
i = class(fname);
for i = 'double'
[sorteddoub inddoub] = sort(fname);
fieldn = fieldnames(strucArray);
num = length(fieldn);
strucArray = setfield(strucArray, fname, sorteddoub);
structsort = setfield(strucArray, fieldn, fieldn(inddoub));
end
for i = 'char'
[sortedchar indchar] = sort(char2num(fname(1)));
end
任何指針將是巨大的。謝謝! –