フィルターのクリア

Why do I get this error? "indices must either be real positive integers or logicals."

4 ビュー (過去 30 日間)
hi, why do I get this error ?
Subscript indices must either be real positive integers or logicals.
Error in sev (line 27)
N(g) = (q*b-a*d)./(e*(q^2)+g.*2*a)
here's my code..
syms q
a=2; b=2; d=0.5; e=0.9 ; q=0.4;
g=1:0.1:10
N(g) = (q*b-a*d)./(e*(q^2)+g.*2*a)
i(g)=(b-e*q*N)/a
m=N(g)
n=i(g)
figure(1)
plot (g,m,'b')
hold on
plot (g, n,'red')

採用された回答

KSSV
KSSV 2020 年 6 月 7 日
編集済み: KSSV 2020 年 6 月 7 日
You need not to use syms. there is no requirement of syms.
You need not to use indesing N(g), this is not reuqired also this is not valid.
a=2; b=2; d=0.5; e=0.9 ; q=0.4;
g=1:0.1:10
N = (q*b-a*d)./(e*(q^2)+g.*2*a)
i=(b-e*q*N)/a
m=N
n=i
figure(1)
plot (g,m,'b')
hold on
plot (g, n,'r')
  3 件のコメント
KSSV
KSSV 2020 年 6 月 7 日
You have used syms but, you have over written the variable. So it no more a symbolic variable. In the present case g has fractions. MATLAN array indices should always be positive integers. May be in the previous case your array might be integers and so it worked.
Ani Asoyan
Ani Asoyan 2020 年 6 月 7 日
No it wasn't integers. but ok I got it,, Thank you !

サインインしてコメントする。

その他の回答 (2 件)

Image Analyst
Image Analyst 2020 年 6 月 7 日

Maximilian Schönau
Maximilian Schönau 2020 年 6 月 7 日
You could use N(g) to create a symbolic function with the symbolic variable g. Since g is not a symbolic variable but a vector, Matlab trys to use the values of g as indices of N, wich does not work.
Use:
N = (q*b-a*d)./(e*(q^2)+g.*2*a)
To create a function N(g) use:
syms g
N(g) = (q*b-a*d)./(e*(q^2)+g.*2*a) % symbolic function
or
N = @(g) (q*b-a*d)./(e*(q^2)+g.*2*a) % function handle
  2 件のコメント
Ani Asoyan
Ani Asoyan 2020 年 6 月 7 日
oh sorry I wrote syms q, but it had to be syms g.... but even in that case I still get that error
Ani Asoyan
Ani Asoyan 2020 年 6 月 7 日
It worked, thank you !

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by