creating a function for my repeating computation

1 view (last 30 days)
I want to create a function for the following set of repeated computations i will be performing in my work.
d = ((x*b) - y).^2;
test = sum (d(:))/1000;
Your help is much appreciated.
  1 Comment
fafz1203
fafz1203 on 18 Oct 2016
please know that the value of x and y is different on every call, it takes different values of x and y every time it's called.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 18 Oct 2016
test = @(b, x, y) sum( reshape( (x*b - y).^2, [], 1) ) / 1000;
Now
result = test(b, x, y); %a call to the function
Question: do there happen to be exactly 1000 elements in y, so it is computing a mean? If so then
test = @(b, x, y) mean2( (x*b - y).^2 ); %if you have the image processing toolbox
test = @(b, x, y) mean( reshape( (x*b - y).^2, [], 1) ); %if you do not have image processing
For some shapes of x and b and y, it would be possible to use (:) instead of reshape()

Tags

Community Treasure Hunt

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

Start Hunting!