Filter löschen
Filter löschen

Insert numeric values (rx1 matrix) inside a cell

2 Ansichten (letzte 30 Tage)
Alberto Acri
Alberto Acri am 10 Dez. 2022
Kommentiert: Stephen23 am 11 Dez. 2022
Hi. I would like to insert a column of 100:
rep = repmat(100,157,1);
inside the first cell (see image) so that 157x2 becomes 157x3.
The third column represents "rep".
How can I do this?

Akzeptierte Antwort

Arif Hoq
Arif Hoq am 10 Dez. 2022
a=randi(100,157,2);
b=randi(200,189,2);
c=randi(300,183,2);
mat={a;b;c} % making a cell array
mat = 3×1 cell array
{157×2 double} {189×2 double} {183×2 double}
% rep = repmat(100,157,1);
mat3={[mat{2,1} repmat(100,size(mat{2,1},1),1)]};
for i=1:size(mat,1)
aaa(i)={[mat{i,1} repmat(100,size(mat{i,1},1),1)]};
end
output=aaa'
output = 3×1 cell array
{157×3 double} {189×3 double} {183×3 double}
  2 Kommentare
Alberto Acri
Alberto Acri am 10 Dez. 2022
Thank you for the answer. I don't want to insert the same value 100 to all cells.
At the first cell (157x2) I need to insert the third column of all 100.
At the second cell (189x2) I need to insert the third column of all 150.
At the third cell (183x2) I must insert the third column of all 200.
Arif Hoq
Arif Hoq am 10 Dez. 2022
tyr this:
a=randi(100,157,2);
b=randi(200,189,2);
c=randi(300,183,2);
mat={a;b;c}; % making a cell array
% rep = repmat(100,157,1);
% mat3={[mat{2,1} repmat(100,size(mat{2,1},1),1)]};
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';

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Identification finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by