MATLAB Answers

Error using sym/subsindex

195 views (last 30 days)
Hello!
I got the following mistake:
Error using sym/subsindex (line 836)
Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function arguments must be symbolic variables, and function body must be sym
expression.
Error in examp (line 22)
Q(i,j) = (1/(a(i)^(1/2)))* ((t_max - t_min)./(size(t)-1))*symsum(h(k)*wavelet((tau(k)-ttt(j))/a(i)),k, 1, size(h)-1);
The code is following:
type Ez_dry.csv;
Test = importdata('Ez_dry.csv');
t = Test(:, 1);
h = Test(:, 2);
t_max = max(t);
t_min = min(t);
wav = @(tau)(2/(3.^(1/2)*pi^(1/4))*exp(-tau.^2/2).*(1 - tau.^2));
ttt = t_min:0.1*10^-10:t_max;
a = 0.3*10^-10:0.6*10^-11:10^-9;
for i = 1:length(a)
for j = 1:length(ttt)
syms k
Q(i,j) = (1/(a(i)^(1/2)))*((t_max - t_min)./(size(t)-1))*symsum(h(k)*wav((tau(k)-ttt(j))/a(i)),k, 1, size(h)-1);
end
end
S = real(Q);
figure(2);
contour (ttt, 1./a, S, 500)
Could you, please, help me to find a solution. Thank you in advance!
  2 Comments
Viktoriia Buliuk
Viktoriia Buliuk on 11 Aug 2020
Thanks a lot!
I decided to use a loop instead of symsum.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 8 Aug 2020
symbolic variables can never be used as indices. You cannot symsum or symprod and use the control variable as an index.
Instead you need to produce the definite vector of individual values and sum() or prod() that.
  1 Comment
Viktoriia Buliuk
Viktoriia Buliuk on 11 Aug 2020
Thank you very much!

Sign in to comment.

More Answers (1)

KSSV
KSSV on 7 Aug 2020
Initialize the cell first.
Q =cell(length(a),length(ttt)) ; % initialize
USe this in the loop.
Q{i,j} = %% your formula with syms
  3 Comments
Viktoriia Buliuk
Viktoriia Buliuk on 7 Aug 2020
Thank you!
Unfortunately, I've got the same error:
Error using sym/subsindex (line 836)
Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function arguments must be symbolic variables, and function body must be sym expression.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!