Filter löschen
Filter löschen

creating a function for my repeating computation

3 Ansichten (letzte 30 Tage)
fafz1203
fafz1203 am 18 Okt. 2016
Beantwortet: Walter Roberson am 18 Okt. 2016
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 Kommentar
fafz1203
fafz1203 am 18 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 18 Okt. 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!

Translated by