Initializing all rows with one set of values in one half and another set in the other half
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Robert Demyanovich
le 20 Sep 2021
Réponse apportée : Walter Roberson
le 20 Sep 2021
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 commentaires
Réponse acceptée
Walter Roberson
le 20 Sep 2021
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 commentaires
Plus de réponses (1)
David Hill
le 20 Sep 2021
cA=repmat([cA0*ones(1,(N-1)/2+1),Kw/cB0*ones(1,(N+1)/2-1)],number_of_rows,1);
0 commentaires
Voir également
Catégories
En savoir plus sur Object Containers dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!