concatanate arrays upon condition
Mostra commenti meno recenti
Dear MatLAb Community,
I would like to concatanate selected coloumns of arrays, some of which are empty arrays, and this is varying dataset by dataset.
How can I exclude the empty arrays from concatanation?
Let's say now , distr3 and distr6 are empty but this my vary.
distr = cat(1,distr1(:,ch1),distr2(:,ch2),distr3(:,ch3),distr4(:,ch4),distr5(:,ch5),distr6(:,ch6),distr7(:,ch7),distr8(:,ch8));
Thans for you suggestions
BEst
lg
1 Commento
"Thans for you suggestions"
Don't store your data in lots of separate variables with numbers in their names.
Risposta accettata
Più risposte (1)
At least in R2025a, there is no problem in using "," to concatenate empty datasets, as long as they are empty along either the first or second dimension. (There can be problems if they are empty along the third dimension and the sizes of the first and second dimension do not match the existing data.)
A = zeros(5,3);
B = ones(5,0);
C = zeros(5,2);
D = []; size(D)
E = ones(3,0);
F = ones(0,3);
G = ones(10,9,0);
[A,B,C]
[A,D,C]
[A,E,C]
[A,F,C]
[A,G,C]
4 Commenti
I just noticed that the original question was about cat(1,...) which is equivalent to using semi-colon inside []
A = zeros(3,5);
B = ones(0,5);
C = zeros(2,5);
D = []; size(D)
E = ones(0,3);
F = ones(3,0);
G = ones(10,9,0);
[A;B;C]
[A;D;C]
[A;E;C]
[A;F;C]
[A;G;C]
Levente Gellért
il 23 Giu 2025
Walter Roberson
il 23 Giu 2025
Modificato: Walter Roberson
il 23 Giu 2025
Is the error you recieved due to the fact that you are subscripting an empty array at columns that do not exist?
T1 = randi(9,5,3)
T2 = randi(9,7,4)
T3 = randi(9,4,1)
T4 = randi(9,6,3)
S = @(A,c) A(:,c:c.*(c<=size(A,2)));
%use the auxillary function S to select columns
[S(T1,2); S(T2,2); S(T3,2); S(T4,2)]
%whereas directly indexing might fail
[T1(:,2); T2(:,2); T3(:,2); T4(:,2)]
Huh, there is a difference between cat(1,A,B) and [A;B] ...
A = zeros(5,1);
B = ones(3,0);
[A;B]
cat(1, A, B)
Categorie
Scopri di più su Creating and Concatenating Matrices in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!