Generating A(i,j) = [i; j]
14 views (last 30 days)
Show older comments
Hi, is there a clean way to generate a matrix A(i,j) = [i; j], especially without resorting to loops? Thank you so much!
1 Comment
Jonathan Epperl
on 4 Dec 2012
No, that would not be a matrix, since you're assigning a vector to the element at (i,j). Do you want to create a 3-dim array, or a cell array, or a blockmatrix? Please modify your question accordingly.
Accepted Answer
More Answers (1)
Walter Roberson
on 4 Dec 2012
Edited: Walter Roberson
on 4 Dec 2012
No. Numeric matrices cannot store multiple items per location.
Cell arrays can store vectors in each location, but then A(i,j) would not be the vector [i;j] and would instead be the 1 x 1 cell array that contained within it the vector [i;j]
Perhaps you would like a 3D array instead.
[P, Q] = ndgrid(1:5, 1:7); %sample bounds
A = cat(3, P, Q);
You could convert to a cell array:
mat2cell(A, ones(1,size(A,1)), ones(1,size(A,2)), 2)
0 Comments
See Also
Categories
Find more on Shifting and Sorting 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!