how to fill matrix without using for loop?

a=zeros(24,4); b=ones(24,1);
Why does not this work?
a(:,1:end)=b(:)
Subscripted assignment dimension mismatch.
Does anyone know where I am going wrong? bold

 Akzeptierte Antwort

Dale
Dale am 11 Nov. 2013
Bearbeitet: Dale am 11 Nov. 2013

0 Stimmen

Are you trying to replicate b through A? In which case use the repmat function:
A = repmat(b,24,1)
Edit: Just realised that b is a column, so it should be A = repmat(b,1,4)

Weitere Antworten (2)

Wayne King
Wayne King am 11 Nov. 2013
Bearbeitet: Wayne King am 11 Nov. 2013

0 Stimmen

because b isn't the right size. b is 24x1 but you are trying to fill all 4 columns of a
How about just
a = ones(24,4);
or if you really want to "fill" starting with zeros.
a = zeros(24,4);
b = ones(24,1);
b = repmat(b,1,4);
a = b;

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by