how to create and use dynamic variable for a 2d matrix
Show older comments
hello,
/*I got a variable */
share1 = zeros((2*s(1)), (2 * s(2))); share2 = zeros((2*s(1)), (2 * s(2)));
i want to have variable share3,share4 ....share N depending on N value
instead of typing and assigning this N times, i want to dynamically create using for loop (many threads have been written that this is a bad practice) is there any efficient way to do it and yes, i want to call the variable later
for better understanding of the question, i posted the source code link https://github.com/hopuihang/VC/tree/master/visual_cryptograpthy_ahti/Visual_Cryptography
Answers (1)
KSSV
on 28 Oct 2016
You can make share a 3D matrix, if all the matrices have same dimensions.
share = rand(10,10,5) ;
You can access them by share(:,:,1), share(:,:,2) etc.
If the matrices are of different size, you can store them in cell.
share = cell(3,1) ;
share{1} = rand(10,5) ;
share{2} = rand(5,7) ;
share{3} = rand(5,1) ;
You can access share by share{1}, share{2}, share{3}.
As suggested by others don't try to name variables dynamically.
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!