running a code on all columns

1 Ansicht (letzte 30 Tage)
DARLINGTON ETAJE
DARLINGTON ETAJE am 14 Aug. 2019
Bearbeitet: KSSV am 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

Akzeptierte Antwort

KSSV
KSSV am 14 Aug. 2019
Bearbeitet: KSSV am 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 Kommentare
DARLINGTON ETAJE
DARLINGTON ETAJE am 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 am 14 Aug. 2019
Bearbeitet: KSSV am 14 Aug. 2019
If you want same to repeat for every column ..you can run a loop...but there are options to avoid looping.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by