MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

finding minimum value in Quanterion matrix

Asked by FIR on 21 Dec 2012

I have a 386x514 quaternion array,in this please tell how to find the minimum value of that matrix

Walter Roberson on 21 Dec 2012

What does each element look like? Is there a reason you cannot just use min(TheMatrix(:)) ?

FIR on 21 Dec 2012

My form is 384x512 pure quaternion array with uint8 components

if i use min i get error

Undefined function or method 'min' for input arguments of type 'quaternion'.

Matt J on 21 Dec 2012

FIR Commented:

http://sourceforge.net/projects/qtfm/

FIR Commented:

Sorry Matt my code [which doesn't work] is

T=65;
for i=2:6
for j=2:6
q= A(i-1:i+1,j-1:j+1);
[minsum, minidx] = min( sum(abs(bsxfun(@minus, q(:), q(:).'))) );
qVFM = q(minidx);
V1=an equation
V2=an equation
S=min([V1 V1]);
if S>T
THE CENTRE PIXEL IS REPLACED BY qVFM %%%%3x3 matrix
else
THE CENTRE PIXEL IS not REPLACED BY qVFM%%%%3x3 matrix
end
end
end

Products

No products are associated with this question.

Answer by Matt J on 21 Dec 2012
Edited by Matt J on 21 Dec 2012

BSXFUN isn't overloaded well in the quaternion toolbox that you're using. Here is a workaround

q= convert(A(i-1:i+1,j-1:j+1),'single');
[minsum, minidx] = min( sum(abs(   repmat(q(:),1,9)-repmat(q(:).',9,1)  ) ));

FIR on 22 Dec 2012
i have found 4 values using above equation
V1,V2,V3,V4
now i want to apply in code
T=65;
for i=2:6
for j=2:6
q= convert(A(i-1:i+1,j-1:j+1),'single');
[minsum, minidx] = min( sum(abs(   repmat(q(:),1,9)-repmat(q(:).',9,1)  ) ));
S=min([V1 V2 V3 V4]);
if S>T
THE CENTRE PIXEL OF QUANTERION ARRAY IS REPLACED BY minsum
else
THE CENTRE PIXEL IS not REPLACED BY minsum
end
end
end