Clear Filters
Clear Filters

building matrix of a variable series in a for loop

1 view (last 30 days)
hi all...i have some variables with their values in workspace, lets say y1,y2....y9.
I want to convert this array in to 3 x 3 matrix such that [y1 y2 y3; y4 y5 y6; y7 y8 y9]..automatically. So that next time if i have values like, y1,y2,..........y49, some script automatically builds a matrix [y1,y2...y7; y8,y8....y14;....and so on]
thanks in advance
  5 Comments
m naveed
m naveed on 5 Jul 2016
never mind...found the solution.
evalin('base', (['y', num2str(i)])); does the job

Sign in to comment.

Answers (1)

Andrei Bobrov
Andrei Bobrov on 29 Jun 2016
Edited: Andrei Bobrov on 29 Jun 2016
a = rand(21);
n = numel(a);
m = ceil(sqrt(n));
out = reshape([a(:);nan(m^2-n,1)],m,[])';

Categories

Find more on Loops and Conditional Statements 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!