For loop help for Linear Algebra Class
Mostrar comentarios más antiguos
I cant seem to get this algorithm code correct.
%HW3 #2
% Given:
%
% y_k denotes k index
%
% y_k=A*x_k
% r_k=norm(y_k) / norm(x_k)
% x_(k+1) = y_k / norm(y)
%
% Create a vector with 0-50 indexes of k
clear all;
close all;
A = [-5,3,-1;0,4,1;0,0,-2];
x(1)=[1;1;1];
for k = 1:51
y{k} = A.*x;
r{k} = norm(y)/norm(x);
x{k+1} = y/norm(y);
end
I receive the error: "In an assignment A(I) = B, the number of elements in B and I must bethe same."
Im not sure how to go about fixing the problem, because I do not fully understand how mat lab operates yet.
4 comentarios
Cedric
el 1 de Feb. de 2013
In addition to Walter's answer, y in your loop is the full cell array. It is probably not what you want to use when you compute x{k+1}.
Sean Murphy
el 1 de Feb. de 2013
Sean Murphy
el 1 de Feb. de 2013
Editada: Sean Murphy
el 1 de Feb. de 2013
You're most welcome! Note that x, y, r are 1D cell arrays, so x{1,51} is the same as x{51}, and the [ ] that you use in [x{1,51}] have no effect.
If you wanted to save all the x vectors though, you could concatenate all cells content of x (which is a cell array, so its elements are cells whose content are 3x1 numeric arrays) the following way: [x{:}], which would be a 3x52 array of vectors in column. This dimension should also make you realize that as you compute x{k+1}, the boundaries that you are defining might need some additional thoughts, especially if you wanted to use then simultaneously x and y (as [y{:}] is a 3x51 array)..
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!