Implement following matrix using for loop

I want implement the following matrix and expression:
%Big_lambda
where theta,r,t are 1*3 matrix and a,b,p,q are 1*1 matrix.
My approach:
theta = [ 45 46 48] ;
t= [ 1 2 3 ];
r= [200 210 220];
for i=1:3
dif_x = [(-cos(theta(i))) (r(i).*sin(theta(i))) (2*a.*t(i)+b);...
(-sin(theta(i))) (-r(i).*cos(theta(i))) (2*p.*t(i)+q)]
W = dif_x(i)*Big_lambda(i)*dif_x(i)'
end
Is the approach correct or if it is wrong what should be done!
Thanks in advance.

7 comentarios

Bob Thompson
Bob Thompson el 15 de Mayo de 2019
Your approach generally seems fine, although I'm not really sure why you have W indexed. Do you want to multiply individual elements, or the entire matrix?
Is there something wrong with what you have written? Are you getting any error messages? Please explain more, or post the entire error message.
Tipu Sultan
Tipu Sultan el 15 de Mayo de 2019
@madhan ravi This is not the same expression that you thought here I am implementing the follwing:
21.17.png
for which I require the value of 'dif_x'.
Tipu Sultan
Tipu Sultan el 15 de Mayo de 2019
@Bob W is indexed as I want to use the value of W in a for loop and subscript denotes the value for each iteration of i.
Bob Thompson
Bob Thompson el 15 de Mayo de 2019
You have still not indicated what exactly your problem is.
Tipu Sultan
Tipu Sultan el 15 de Mayo de 2019
Editada: Tipu Sultan el 15 de Mayo de 2019
I want to implement the following expression:
the expression contains partial derivative and big lambda which are basically the following expression:
where big lamda in the above can be taken as a identity matrix of 3*3.
W having index means it it will be inside a loop,I have implemented as follows:
theta = [ 45 46 48] ;
t= [ 1 2 3 ];
r= [200 210 220];
x = [ r; theta ; t];
Big_lambda = eye(2);
dif_x = zeros(2, 3, 3); % Pre-allocation
for i=1:3
dif_x(:, :, i) = [-cos(theta(i)), r(i).*sin(theta(i)), 2*a.*t(i)+b;...
-sin(theta(i)), -r(i).*cos(theta(i)), 2*p.*t(i)+q];
W = dif_x(:,:,i)*Big_lambda(i)*dif_x(:,:,i)'
end
I want to know I am going in the correct direction or I need to change some thing.
Bob Thompson
Bob Thompson el 15 de Mayo de 2019
Editada: Bob Thompson el 15 de Mayo de 2019
As far as I can tell you are going in the correct direction. I am not a SME on your specific problem, but for the code aspect it seems to be functional.
I noticed you adjusted your indexing on dif_x. Don't forget to index W as well if you want to retain the results from each loop, instead of just the final loop.
W(i) = dif_x(:,:,i)*Big_lambda(i)*dif_x(:,:,i)'

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 15 de Mayo de 2019

Editada:

el 15 de Mayo de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by