running a code on all columns

1 view (last 30 days)
DARLINGTON ETAJE
DARLINGTON ETAJE on 14 Aug 2019
Edited: KSSV on 14 Aug 2019
Consider, Y is a 1000 by 100 matrix...100 columns and 1000 rows
Y1=Y(:,1);
if I run this code
S1 = numel(Y1);
xx1 = reshape(Y1(1:S1 - mod(S1, 20)), 20, []);
if I run this code
xx1 is a 20 by 50 matrix
What code can I use to do the same thing for the remaining 99 columns of Y

Accepted Answer

KSSV
KSSV on 14 Aug 2019
Edited: KSSV on 14 Aug 2019
Y = rand(1000,100) ;
iwant = zeros(20,50,100) ;
for i = 1:100
Y1 = Y(:,i) ;
S1 = numel(Y1); % this is same always 1000
iwant(:,:,i) = reshape(Y1(1:S1 - mod(S1, 20)), 20, []);
end
With out loop
% no loop
m = 1000 ;
n = mod(m,20) ;
P = Y(1:m-n,:) ;
Q = reshape(P,20,50,[]) ;
  3 Comments
DARLINGTON ETAJE
DARLINGTON ETAJE on 14 Aug 2019
Asking the question further:
Consider, Y is a 1000 by 100 matrix...100 columns and 1000 rows
Y1=Y(:,1);
if I run this code
S1 = numel(Y1);
xx1 = reshape(Y1(1:S1 - mod(S1, 20)), 20, []);
y1 = sum(xx1, 1).' / 20;
y1 is a 50 by 1 matrix
assuming z is also a 50 by 1 matrix
subtr=abs(y1-z)
What code can I use to do the same thing for the remaining 99 columns of Y
KSSV
KSSV on 14 Aug 2019
Edited: KSSV on 14 Aug 2019
If you want same to repeat for every column ..you can run a loop...but there are options to avoid looping.

Sign in to comment.

More Answers (0)

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!