cell array or matrix for complex subtraction calculation

7 visualizzazioni (ultimi 30 giorni)
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 Commenti
Andrei Bobrov
Andrei Bobrov il 29 Set 2014
What is M30 - .mat, .xls or .txt - file or variable of mat - file.
AA
AA il 29 Set 2014
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?

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 29 Set 2014
Modificato: Andrei Bobrov il 29 Set 2014
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 Commenti
AA
AA il 7 Ott 2014
sorry for asking this question but do i type this in the command window or script/editor?
AA
AA il 7 Ott 2014
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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Tables in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by