extract the same coloumn from multiple mtrix

2 views (last 30 days)
Hi! I'm new here i want to ask if there is a solution in Matlab to extract the same column number from multiple matrix. I have 640 matrix and I want to extract from each mtrix the column indexed 70 and save this column in one new matrix .I thank you in advance for your help

Accepted Answer

Matt J
Matt J on 19 Oct 2012
Edited: Matt J on 19 Oct 2012
If your data exists as an MxNx640 array, then it's easy
newmatrix= data(:,70,:);
newmatrix=reshape(newmatrix,M,640);
  5 Comments
Matt J
Matt J on 19 Oct 2012
Sigh... Well, first we'll have to undo the damage. Nothing will be fast until we do:
M=cell(8, 80);
for i=1:8
for j=1:80
M{i,j}=eval(['device' num2str(i) '_' num2str(j)]);
end
end
Now you can do as before
data=cat3(M{:});
newmatrix= data(:,70,:);
newmatrix=reshape(newmatrix,M,640);

Sign in to comment.

More Answers (2)

Razvan
Razvan on 19 Oct 2012
To extract column 70 from matrix M you do
C = M(:,70);
To add this column to another matrix (M2) you do
M2 = [M2, C];
  3 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 19 Oct 2012
Edited: Azzi Abdelmalek on 19 Oct 2012
how are named your 640 matrix? , or do you import them each iteration
sami
sami on 19 Oct 2012
the 640 matrices are 150*19 Double matrices and are named device1_1 to device1_80 device2_2 to device2_80 and so on 8 times

Sign in to comment.


Azzi Abdelmalek
Azzi Abdelmalek on 19 Oct 2012
Edited: Azzi Abdelmalek on 19 Oct 2012
M=[]
for k=1:8
s=['M=[M' sprintf([',device%d_%d(:,70)'],[k*ones(1,80);(1:80)]) ']']
eval(s)
end

Community Treasure Hunt

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

Start Hunting!