# Why it gives Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters

8 views (last 30 days)
Mavra Mehmood on 23 Feb 2020
Edited: Stephen Cobeldick on 25 Feb 2020
h = fspecial('unsharp');
f = imfilter(f1,h);
fig_demo = decorrstretch(f,'tol',0.01);
% J = imadjust(D1, [0.15 0.78], []);
[M, N] = size(J);
[J, revertclass] = tofloat(J);
PQ=paddedsize(size(J)); % f is floating point.
D0=0.5*PQ(1);
HBW = hpfilter('btw', PQ(1),PQ(2), D0,2);
%%hp filter function
function H = hpfilter(type,PQ(1); PQ(2), D0, n)
%HPFILTER Computes frequency domain highpass filters
% H = HPFILTER(TYPE, M, N, D0, n) creates the transfer function of
% a highpass filter, H, of the specified TYPE and size (M-by-N).
% Valid values for TYPE, D0, and n are:
%
% 'ideal' Ideal highpass filter with cutoff frequency D0. n
% need not be supplied. D0 must be positive
%
% 'btw' Butterworth highpass filter of order n, and cutoff D0.
% The default value for n is 1.0. D0 must be positive.
%
% 'gaussian' Gaussian highpass filter with cutoff (standard deviation)
% D0. n need not be supplied. D0 must be positive.
%
% The transfer function Hhp of a highpass filter is 1 - Hlp,
% where Hlp is the transfer function of the corresponding lowpass
% filter. Thus, we can use function lpfilter to generate highpass
% filters.
if nargin == 4
n = 1; % Default value of n.
end
% Generate highpass filter.
Hlp = lpfilter(type, M, N, D0, n);
H = 1 - Hlp;

#### 1 Comment

Stephen Cobeldick on 24 Feb 2020
function H = hpfilter(type,PQ(1); PQ(2), D0, n)
% ^ ^^ ^ ^ not valid in function definition

Sindar on 24 Feb 2020
This would be much easier to solve if you included the full error text. But, I suspect the problem is here:
function H = hpfilter(type,PQ(1); PQ(2), D0, n)
you have ; instead of ,
function H = hpfilter(type,PQ(1), PQ(2), D0, n)