How can i define with variable

1 view (last 30 days)
fatih ayça
fatih ayça on 6 Mar 2021
Edited: fatih ayça on 6 Mar 2021
COORD = [0 0;2 0;4 0;2 2;0 2];
CON = [2 1;3 2;3 4;2 4;4 1;4 5];
for a = 1:6
i = CON(a,1);
j = CON(a,2);
COORD(j,1);
COORD(i,1);
dx = COORD(j,1)-COORD(i,1);
dy = COORD(j,2)-COORD(i,2);
lambdax(a) = dx ;
lambday(a) = dy ;
end
for a = 1:6
K = [lambdax(a)^2 lambdax(a)*lambday(a) -lambdax(a)^2 -lambdax(a)*lambday(a);lambdax(a)*lambday(a) lambday(a)^2 -lambdax(a)*lambday(a) -lambday(a)^2;-lambdax(a)^2 -lambdax(a)*lambday(a) lambdax(a)^2 lambdax(a)*lambday(a);-lambdax(a)*lambday(a) -lambday(a)^2 lambdax(a)*lambday(a) lambday(a)^2]
end
Hello everyone, this is my script it is working now but i need K in the form of K(a) or K(b), if i write K(a) it is not working. How can i write like K(a)?

Accepted Answer

Star Strider
Star Strider on 6 Mar 2021
I still do not understand what you want to do, however it is straightforward to create ‘K’ as an anonymous function:
K = @(a) [lambdax(a).^2 lambdax(a)*lambday(a) -lambdax(a).^2 -lambdax(a).*lambday(a);lambdax(a).*lambday(a) lambday(a).^2 -lambdax(a).*lambday(a) -lambday(a).^2;-lambdax(a).^2 -lambdax(a).*lambday(a) lambdax(a).^2 lambdax(a).*lambday(a);-lambdax(a).*lambday(a) -lambday(a).^2 lambdax(a).*lambday(a) lambday(a).^2];
That should then produce whatever it is that you want from calling ‘K’ as a function.
See the documentation section on Anonymous Functions for details on how they work and how to use them.
I also vectorised ‘K’. See Array vs. Matrix Operations for those details.
.
  6 Comments
Star Strider
Star Strider on 6 Mar 2021
As always, my pleasure!

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!