Why do I receive error for reshape function?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am using the following code below, however, I keep getting geting the error message for reshape function. How would the code or reshape function be changed to stop the error?
>> s = 1/sqrt(2);
A = [1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 1 1 1; 1 0 0 1 0 0 1 0 0; 0 0 1 0 0 1 0 0 1; s s 0 s 0 0 0 0 0; 0 0 0 0 0 s 0 s s; 0 0 0 s 0 0 s s 0; 0 s s 0 0 s 0 0 0];
b = [6; 24; 12; 18; 4.9497; 16.2634; 13.4350; 7.7781];
k = 1:20;
X = kaczmarz(A,b,k);
figure(1)
for i=1:kmax, subplot(4,5,i), imagesc(reshape(X(:,i),N,N)), end
Error using reshape
Number of elements must not change. Use [] as one of the size inputs
to automatically calculate the appropriate size for that dimension.
3 commentaires
Scott MacKenzie
le 7 Juin 2021
I suspect the issue is that X(:,i) does not have exactly NxN elements.
Réponse acceptée
KSSV
le 7 Juin 2021
The number of elements in X(:,j) is not equal to N*N, thats why you are getting error.
N = 3 ;
X = rand(10) ;
x = reshape(X(:,1),N,N) ; % this will lead to error
See to it that the number of elements should not change. You may use imresize to achieve this.
[m,n] = size(X) ;
X = imresize(X,[N*N,n]) ;
imagesc(reshape(X(:,1),N,N)) ; % this will work
3 commentaires
KSSV
le 7 Juin 2021
It would be because the dimensions (number of rows) in x and X are different. You can change the dimensions of x or use same X as previous.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical 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!