how to fill matrix without using for loop?

8 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Dale
Dale il 11 Nov 2013
Modificato: Dale il 11 Nov 2013
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)

Più risposte (2)

Wayne King
Wayne King il 11 Nov 2013
Modificato: Wayne King il 11 Nov 2013
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;

Carlos Oliveira
Carlos Oliveira il 11 Nov 2013
Thank you Dale. :)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by