求解目的
在Matlab中,求一列数据中的最大值。
数据格式
在Matlab中有一struct名称为Data,1*2000,包含3个字段,分别为“x","y","z"。
字段"y"所在的列中,有2000行,其中每一行都是double数组,但尺寸不一致,有的为12*1,有的为13*1,还有的是10*1。
想要求出”y"列的左右数据中的最大值。
代码及报错
尝试过把Data.y合并成一个数组,但由于维度不一致所以失败了。
[Data.y]';
错误使用 horzcat
要串联的数组的维度不一致。
直接求max也失败了。
max(Data.y)
错误使用 max
输入参数太多
目前想到的笨办法是给每一行double求最大值,最后在2000个最大值里再求最大值。
cc=ones(size(Data,2),1);
for i = 1: size(Data,2)
cc(i) = max(Data(i).y);
end
max(cc)
但这个方法要调用2001次max,而且后续数据会达到上万行。所以希望能找到更简明高效的办法,还请大家帮忙出出主意!如果通过其他语言(python等)可以实现的话,也可以讲讲思路,我会再试试,谢谢!
恳求指点!(本人刚学matlab不久,万分感谢!)