calling array entry based on variable
    10 views (last 30 days)
  
       Show older comments
    
I have an array A and I want to call one of its entries. I want to predefine which entry by saying E='1,2' for example, and calling A(E). Is this possible?
EDIT:
I want to call A(1,2) but I want (1,2) to be defined before I call A(1,2)
So something like:
A=[1 2 3;4 5 6;7 8 9];
E='1,2';
A(E)
>>ans=2
0 Comments
Answers (1)
  Image Analyst
      
      
 on 7 Apr 2015
        What does E mean? And what are its dimensions? If it's a 1x2 array that means a row and column, then you'd have to do A(E(1), E(2)).
If you simply did A(E) it would take that to mean you want two elements, A(E(1)) and A(E(2)), using E as linear indexes , not rows and columns. Since linear indexes go down the first column, then down the second column, etc. across all the columns, then A(E) would get A(1,1) and A(2,1). Just try it and see:
A=magic(4)
E = [1,2]
A(E)
6 Comments
  James Tursa
      
      
 on 8 Apr 2015
				Josh: Is E a string or isn't it? If it is a string, then does it have to be a string or can you make it simpler on yourself as IA suggests?
  Image Analyst
      
      
 on 8 Apr 2015
				Oh great - now they're cells? Or cell arrays? It's getting even worse. Plus you have several of these cell arrays, not just one, with possibly with different variable names (other than the badly-named "E"). What is the size of the cell arrays, and inside each cell, is there a numerical array, and what is the size of that array? I really urge you to simplify your programming life.
See Also
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!

