how to fill matrix without using for loop?

조회 수: 8 (최근 30일)
Carlos Oliveira
Carlos Oliveira 2013년 11월 11일
답변: Carlos Oliveira 2013년 11월 11일
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

채택된 답변

Dale
Dale 2013년 11월 11일
편집: Dale 2013년 11월 11일
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)

추가 답변 (2개)

Wayne King
Wayne King 2013년 11월 11일
편집: Wayne King 2013년 11월 11일
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 2013년 11월 11일
Thank you Dale. :)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by