Finding largest data from table
2 次查看(过去 30 天)
显示 更早的评论
Lets say that I have a table containing three matricies of different lengths.
X1=[9 6 9 0;3 2 7 0];
X2=[0 2;4 0];
X3=[3 1 2; 8 9 7];
X=table(X1,X2,X3)
How can i I find the longest one? Is there a way to find more then one matrix of a specific lenght? Lets say the ones that are the longest.
采纳的回答
Chunru
2021-11-15
编辑:Chunru
2021-11-15
X1=[9 6 9 0;3 2 7 0];
X2=[0 2;4 0];
X3=[3 1 2; 8 9 7];
X4 = X1;
X=table(X1,X2,X3,X4)
len = table2array(varfun(@(x) size(x, 2), X));
% max will find 1 entry only
[lmax, idx] = max(len)
% if you want multiple entries
idxall = find(len == lmax)
2 个评论
Seth Furman
2021-11-16
编辑:Seth Furman
2021-11-16
The only thing I would add is that
@(x) size(x, 2)
can be replaced with
@width
since the width function returns the number of variables in a table or the number of columns in an array.
e.g.
X1 = [9 6 9 0;3 2 7 0];
X2 = [0 2;4 0];
X3 = [3 1 2; 8 9 7];
X4 = X1;
X = table(X1,X2,X3,X4)
varfun(@width, X, "OutputFormat", "uniform")
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!