I'm not quite sure of what you mean by not worry if it's 1d R matrices. X1
and X2 are both n by d matrices and W is d by d.

Thanks for the help though. Any other ideas?

Thanks
Sachin

On Friday, November 18, 2011, R. Michael Weylandt <
michael.weylandt@gmail.com> wrote:
> The fastest is probably to just implement the matrix calculation
> directly in R with the %*% operator.
>
> (X1-X2) %*% W %*% (X1-X2)
>
> You don't need to worry about the transposing if you are passing R
> vectors X1,X2. If they are 1-d matrices, you might need to.
>
> Michael
>
> On Thu, Nov 17, 2011 at 1:30 AM, Sachinthaka Abeywardana
> <sachin.abeywardana@gmail.com> wrote:
>> Hi All,
>>
>> I am trying to convert the following piece of matlab code to R:
>>
>> XX1 = sum(w(:,ones(1,N1)).*X1.*X1,1);          #square the elements of
X1,
>> weight it and repeat this vector N1 times
>> XX2 = sum(w(:,ones(1,N2)).*X2.*X2,1);          #square the elements of
X2,
>> weigh and repeat this vector N2 times
>> X1X2 = (w(:,ones(1,N1)).*X1)'*X2;                 #get the weighted
>> 'covariance' term
>> XX1T = XX1';                                              #transpose
>> z = XX1T(:,ones(1,N2)) + XX2(ones(1,N1),:) - 2*X1X2;            #get the
>> squared weighted distance
>>
>> which is basically doing: z=(X1-X2)' W (X1-X2)
>>
>> What would the best way (for SPEED) to do this? or is vectorizing as
above
>> the best? Any hints, suggestions?
>>
>> Thanks,
>> Sachin
>>
>>        [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>

	[[alternative HTML version deleted]]

