Merge nx3 double matrices present within a 3x1 cell

2 vues (au cours des 30 derniers jours)
Alberto Acri
Alberto Acri le 11 Déc 2022
Modifié(e) : Stephen23 le 11 Déc 2022
I have the following generic code that generates me a 3x1 "output" cell.
a=randi(100,157,2);
b=randi(200,189,2);
c=randi(300,183,2);
mat={a;b;c};
for i=1:size(mat,1)
if i==1
aaa(i)={[mat{i,1} repmat(100,size(mat{i,1},1),1)]};
elseif i==2
aaa(i)={[mat{i,1} repmat(150,size(mat{i,1},1),1)]};
elseif i==3
aaa(i)={[mat{i,1} repmat(200,size(mat{i,1},1),1)]};
end
end
output=aaa';
The internal of "output" is characterized by:
157x3 double
189x3 double
183x3 double
I would like to try to merge all the matrix (nx3), present inside "output", into one array (an example like this: link)
I used the following code but it gives an error due to the fact that the number of rows in each matrix is different.
matrix = [];
for nbr = 1:3
matrix = [matrix, output{nbr,1}];
end
  1 commentaire
Stephen23
Stephen23 le 11 Déc 2022
Modifié(e) : Stephen23 le 11 Déc 2022
Simpler code and much more efficient use of MATLAB:
a=randi(100,157,2);
b=randi(200,189,2);
c=randi(300,183,2);
tmp = {a,b,c};
vec = [100,150,200];
for k = 1:numel(tmp)
tmp{k}(:,3) = vec(k);
end
out = vertcat(tmp{:}) % comma-separated list
out = 529×3
59 31 100 58 60 100 35 98 100 65 48 100 97 91 100 56 49 100 94 77 100 33 4 100 11 89 100 4 56 100

Connectez-vous pour commenter.

Réponse acceptée

Chetan Bhavsar
Chetan Bhavsar le 11 Déc 2022
a=randi(100,157,2);
b=randi(200,189,2);
c=randi(300,183,2);
mat={a;b;c};
for i=1:size(mat,1)
if i==1
aaa(i)={[mat{i,1} repmat(100,size(mat{i,1},1),1)]};
elseif i==2
aaa(i)={[mat{i,1} repmat(150,size(mat{i,1},1),1)]};
elseif i==3
aaa(i)={[mat{i,1} repmat(200,size(mat{i,1},1),1)]};
end
end
output=aaa';
matrix = [];
for nbr = 1:3
matrix = [matrix; output{nbr,1}];
end
matrix
matrix = 529×3
97 80 100 12 3 100 38 40 100 54 71 100 96 94 100 25 50 100 81 59 100 4 76 100 73 85 100 54 37 100

Plus de réponses (0)

Catégories

En savoir plus sur Wind Power dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by