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 commentaires

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

Connectez-vous pour commenter.

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 29 Juil 2012
Modifié(e) : Azzi Abdelmalek le 29 Juil 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 commentaires

sorry there is an error, ';' instead of ':' i will fix it
is it ok now? thanks
Sabbas
Sabbas le 29 Juil 2012
Modifié(e) : Sabbas le 29 Juil 2012
could someone help me please? I do not know how to do it
thank you very much
did you try my code?

Connectez-vous pour commenter.

Plus de réponses (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 commentaires

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.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by