Filter löschen
Filter löschen

Finding largest data from table

3 Ansichten (letzte 30 Tage)
Sebastian Daneli
Sebastian Daneli am 15 Nov. 2021
Bearbeitet: Seth Furman am 16 Nov. 2021
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)
X = 2×3 table
X1 X2 X3 ________________ ______ ___________ 9 6 9 0 0 2 3 1 2 3 2 7 0 4 0 8 9 7
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.
  1 Kommentar
Chunru
Chunru am 15 Nov. 2021
Show what the data you have by giving a minimum example.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Chunru
Chunru am 15 Nov. 2021
Bearbeitet: Chunru am 15 Nov. 2021
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)
X = 2×4 table
X1 X2 X3 X4 ________________ ______ ___________ ________________ 9 6 9 0 0 2 3 1 2 9 6 9 0 3 2 7 0 4 0 8 9 7 3 2 7 0
len = table2array(varfun(@(x) size(x, 2), X));
% max will find 1 entry only
[lmax, idx] = max(len)
lmax = 4
idx = 1
% if you want multiple entries
idxall = find(len == lmax)
idxall = 1×2
1 4
  2 Kommentare
Sebastian Daneli
Sebastian Daneli am 15 Nov. 2021
Thx
Seth Furman
Seth Furman am 16 Nov. 2021
Bearbeitet: Seth Furman am 16 Nov. 2021
The only thing I would add is that
@(x) size(x, 2)
ans = function_handle with value:
@(x)size(x,2)
can be replaced with
@width
ans = function_handle with value:
@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)
X = 2×4 table
X1 X2 X3 X4 ________________ ______ ___________ ________________ 9 6 9 0 0 2 3 1 2 9 6 9 0 3 2 7 0 4 0 8 9 7 3 2 7 0
varfun(@width, X, "OutputFormat", "uniform")
ans = 1×4
4 2 3 4

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Performance and Memory finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by