cell array or matrix for complex subtraction calculation

조회 수: 1 (최근 30일)
AA
AA 2014년 9월 29일
댓글: AA 2014년 10월 7일
Hi, I used excel to import a table (table B) which has 24 columns and 200000 rows. I have another table (table A) which has only one column and 24 rows. I want to subtract table A from table B in such a manner that the first 24 rows of each column (table B) are subtracted from table A, then the next consecutive rows of table B are subtracted from table A, then the next consecutive rows and so on until all 200000 rows are completed. The example below illustrates what I want to do:
row 0-24 from table B minus 24 rows from Table A row 25-49 from table B minus 24 rows from Table A and so on.
the subtract should be done in such a manner that I get an absolute value.
1) How shall I import the files? Matlab offers many options: matrices, vectors, cell arrays, table format 2) Shall I use a command or a script to run this calculation and how do I write the command or script? 3) I have many table Bs' which are named MM30 to MM120. So 90 different tables Bs' and I want a loop that performs this complex calculation between table A and all table Bs.
I really appreciate your help.
  댓글 수: 2
Andrei Bobrov
Andrei Bobrov 2014년 9월 29일
What is M30 - .mat, .xls or .txt - file or variable of mat - file.
AA
AA 2014년 9월 29일
M30 is an xlsb excel file. I have imported it into matlab. I do not know which format I should import it as. Matrix, vector, table or cell array?

댓글을 달려면 로그인하십시오.

채택된 답변

Andrei Bobrov
Andrei Bobrov 2014년 9월 29일
편집: Andrei Bobrov 2014년 9월 29일
s = size(B);
s2 = numel(A);
k = ceil(s(1)/s2);
out = [B;nan(mod(-s(1),s2),s(2))] - kron(ones(k,s(2)),A);
% or out = [B;nan(mod(-s(1),s2),s(2))] - repmat(A,k,s(2));
one way
cd path/to/your/dir % here path to dir where your xlsx - files
n = dir('MM*.xlsb');
n1 = {n.name};
nn = numel(n);
out = cell(nn,1);
s2 = numel(A);
for ii = 1:nn
B = xlsread(n1{ii});
s = size(B);
k = ceil(s(1)/s2);
out{ii} = [B;nan(mod(-s(1),s2),s(2))] - repmat(A,k,s(2));
end
  댓글 수: 5
AA
AA 2014년 10월 7일
sorry for asking this question but do i type this in the command window or script/editor?
AA
AA 2014년 10월 7일
and also in which folder do the files get saved? i should get 90 different files as there are 90 different tables. thanks a lot

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Tables에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by