cell array or matrix for complex subtraction calculation

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 comentarios

What is M30 - .mat, .xls or .txt - file or variable of mat - file.
AA
AA el 29 de Sept. de 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?

Iniciar sesión para comentar.

 Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 29 de Sept. de 2014
Editada: Andrei Bobrov el 29 de Sept. de 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 comentarios

AA
AA el 29 de Sept. de 2014
do i have to import the data as vector, matrix or cell array before performing this operation? please help me on this.
AA
AA el 29 de Sept. de 2014
s1 is undefined. B and A are also undefined. are A and B representing the tables?
I corrected
AA
AA el 7 de Oct. de 2014
sorry for asking this question but do i type this in the command window or script/editor?
AA
AA el 7 de Oct. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

AA
el 29 de Sept. de 2014

Comentada:

AA
el 7 de Oct. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by