multiplying/dividing matrices that contain string variables and NaN

Dear all
I have
I have
A= [
29 1;
27 4;
31 0;
28 3;
25 5;
]
and
B={'id1' 'id2' 'id3' 'id4'
[0.4607] [0.4400] [ 0.9167] [0.8701]
[0.4400] [0.4432] [ NaN] [ 0.8808]
[0.4432] [ 0.4419] [ 0.8808] [ 0.8809]
[0.4419] [NaN] [ 0.8809] [ 0.9156]
[0.4607] [0.4547] [ 0.9156] [ 0.9039]
}
and
A1=A(:,1)
And I want to calculate
sum(A.*B(:,1:2),2)/A1
sum(A.*B(:,3:4),2)/A1
in one step because my B contains 120 columns and I want to multiply A with every 2 columns of B that is B(:,1:2) B(:,3:4) B(:,5:6)
S0, I am looking something like
sum(A.*[B(:,1:2) B(:,3:4) B(:,5:6) ],2)/A1
thanks

2 comentarios

Any help?
thanks
As a general approach I would suggest to avoid storing double matrices in cell arrays, makes things unnecessarily complicated.

Iniciar sesión para comentar.

 Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 29 de Jul. de 2012
Editada: Azzi Abdelmalek el 29 de Jul. de 2012
a=B(2:end,:)
ind=cellfun(@(x) ~isstr(x),a);b=a;
b(find(ind==0))=num2cell(0)
C=cell2mat(b);
n=size(b,2);D=[];
for k=1:2:n-1
D=[D A.*C(:,k:k+1)]
end
Result=sum(D,2)./A(:,1)

4 comentarios

sorry there is an error, ';' instead of ':' i will fix it
is it ok now? thanks
Sabbas
Sabbas el 29 de Jul. de 2012
Editada: Sabbas el 29 de Jul. de 2012
could someone help me please? I do not know how to do it
thank you very much
did you try my code?

Iniciar sesión para comentar.

Más respuestas (1)

Using the same approach from my answer to your previous post:
% First extract only the data
Bdata = cell2mat(B(2:end,:));
bsxfun(@rdivide,squeeze(nansum(bsxfun(@times, reshape(Bdata,5,2,[]),A),2)),A(:,1))

2 comentarios

When I apply the above code I get the following error message
bsxfun(@times, reshape(out2,ll,2,[]),AS)
Error using bsxfun
Non-singleton dimensions of the two input arrays must match each other.
Am I doing something wrong?
thanks
As should have at least one dimension the same length as the reshaped out2.

Iniciar sesión para comentar.

Categorías

Community Treasure Hunt

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

Start Hunting!

Translated by