I am getting some error in matrix multiplication. Kindly help me in this regard.

1 view (last 30 days)
Following is my code.
c=zeros(64,64,33);
for i=1:64
for j=1:64
for k=1:33
y=reshape(V(i,j,k,:),240,1); %The size of y will be 240*1
c(i,j,k)=(transpose(A)*A)\transpose(A)*y;
end
end
end
By doing so I am getting error, at c(i,j,k)=(transpose(A)*A)\transpose(A)*y;
The error statement is
Assignment has more non-singleton rhs dimensions than non-singleton
subscripts
Kindly help !!!

Answers (1)

Thorsten
Thorsten on 6 Oct 2015
If y is of size 240x1, than the result of (transpose(A)*A)\transpose(A)*y will be of the same size. You cannot assign a vector to a single scalar
c(i,j,k)
Instead, use
c(i,j,k,:)=(transpose(A)*A)\transpose(A)*y;
  1 Comment
Talha Khan
Talha Khan on 6 Oct 2015
Thanks a lot dear :). I understand the mistake. The size of (transpose(A)*A)\transpose(A)*y is 3*1. a lot of thanks for your kind response

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!