1、函数
% get the field value from sta
function data=get_fdata(sta,field)
data=[];
af=fieldnames(sta);
n=length(af);
for i=1:n
if mstrcmp(af{i},field)==0
break;
end
end
if (mstrcmp(af{i},field)~=0)
disp('----error----');
disp(['The filed ''',field,''' is not in sta!']);
disp('------end----');
return;
end
m=length(sta);
for i=1:m
data=eval(['[data;sta(i).',field,'];']);
end
end
2、两行代码
数字:
a={sta.lon};
a=cell2mat(a)';
%a=[sta.lon]';%这行与上面两行效果相同
长度一致的字符数组:
a={sta.name};
a=cell2mat(a)';
这种最后得到的字符矩阵每行只有一个字符,不符合预期,建议采用上面的函数或者采用一个for循环:
% cell mat 2 str mat
function data=cellm2strm(cemat)
n=length(cemat);
data=[];
for i=1:n
data=[data;cemat{i}];
end
end
注意:要求字符长度一致!!