MATLAB Creating Variables in Matlab with "k" and Array of Numbers

  • Thread starter Thread starter elbarto
  • Start date Start date
  • Tags Tags
    Matlab
AI Thread Summary
The discussion centers on creating dynamic variable names in MATLAB, specifically combining an array of numbers with the letter 'k' to generate variables like k1, k2, k3, each assigned a 3x3 matrix. The initial attempt using a character string for multiple left-hand side assignments resulted in an error. A solution was suggested using the functions sprintf and eval, although it was noted that this approach might be overly complex. Additionally, the user encountered issues with calculating angles, particularly with the sine function returning 0 instead of the expected value for certain inputs. The solution to this problem involved using the atan2 function instead of atan, which resolved the angle calculation issue effectively.
elbarto
Messages
32
Reaction score
0

Homework Statement


Hi,
Just wondering if someone could please steer me in the right dirrection for the correct syntax in matlab. I am trying to create a variable from an array of numbers and combine it with the letter k, to give me k1=[] k2=[] k3=[] etc. where [] is a 3x3 matracie




Homework Equations





The Attempt at a Solution



This isn't the problem I am working on but the solution to this would be a great help.

a=[1 3];
['k' int2str(a(2))]=[0 1 2;1 2 3;0 1 2]
? Error: An array for multiple LHS assignment cannot contain character string.



Trying to get this

k3 =

0 1 2
1 2 3
0 1 2


Thanks
Elbarto
 
Physics news on Phys.org
Use sprintf and eval.

- Warren
 
Thanks for the reply, I did get the function to work, but I did read on the net that this was a long winded way of going through the process. does MATLAB have any operations to make this simpler?
 
Just one more question regarding matlab, I am having trouble working with angles. I think sin(alpha) needs to be -1 {or I might just be haveing a really bad day with my maths}. Either way, can someone please explain what I need to do to get pi() instead of 0. I wrote a program the works off inputted co-odinates and it is not operating like it should for horrizontal member.
consider moveing from point (0,0) to (-1,0)

>> dx=-1-0

dx =

-1

>> dy=0- 0

dy =

0

>> alpha=atan(dy/dx)

alpha =

0

>> sin(alpha)

ans =

0

For the rest of my program to work, I need to be able to evaluate sin properly otherwise the output is useless.

This is probably an easy question and the solution might be quite obvious but with my limited experience I haven't managed to think of anything yet.

Thank You
Regards Elbarto
 
Use atan2 instead of atan.
 
Thanks allot for the reply. Works a treat, just what I was looking for.

Regards Elbarto
 

Similar threads

Replies
4
Views
2K
Replies
5
Views
2K
Replies
8
Views
2K
Replies
2
Views
2K
Replies
10
Views
3K
Replies
1
Views
1K
Replies
5
Views
4K
Back
Top