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]
}
andA1=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
No products are associated with this question.
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)
could someone help me please? I do not know how to do it
thank you very much
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))
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.
2 Comments
Direct link to this comment:
http://www.mathworks.de/matlabcentral/answers/44764#comment_92057
Any help?
thanks
Direct link to this comment:
http://www.mathworks.de/matlabcentral/answers/44764#comment_92104
As a general approach I would suggest to avoid storing double matrices in cell arrays, makes things unnecessarily complicated.