Initializing all rows with one set of values in one half and another set in the other half
조회 수: 1 (최근 30일)
이전 댓글 표시
The following line of code works for initializing the first row of an array:
cA(1,:)=[cA0*ones(1,(N-1)/2+1),Kw/cB0*ones(1,(N+1)/2-1)];
However, I would like to initialize all rows of the array with this "code". I thought the following would work, but it doesn't.
cA(:,:)=[cA0*ones(1,(N-1)/2+1),Kw/cB0*ones(1,(N+1)/2-1)];
MatLab is throwing up an error that it doesn't recognize function or variable 'ones'. How do I initialize all rows in cA with what I originally had for just the first row.
댓글 수: 0
채택된 답변
Walter Roberson
2021년 9월 20일
cA(:,:) = repmat([cA0*ones(1,(N-1)/2+1),Kw/cB0*ones(1,(N+1)/2-1)], size(cA,1), 1);
Or consider
nrow = size(cA,1);
cA(:,:) = [cA0*ones(nrow,(N-1)/2+1),Kw/cB0*ones(nrow,(N+1)/2-1)];
Unless cA has some special attributes you want to save, such as you wanting to preserve single(), then you would normally use
nrow = size(cA,1);
cA = [cA0*ones(nrow,(N-1)/2+1),Kw/cB0*ones(nrow,(N+1)/2-1)];
And more generally, you would typically use
mid = ceil(N/2);
cA(:, 1:mid) = cA0;
cA(:, mid+1:N) = Kw/cB0;
댓글 수: 0
추가 답변 (1개)
David Hill
2021년 9월 20일
cA=repmat([cA0*ones(1,(N-1)/2+1),Kw/cB0*ones(1,(N+1)/2-1)],number_of_rows,1);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Object Containers에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!