MATLAB Answers

0

Distinguishing matrices in for loops

Asked by Oddur Bjarnason on 11 Jul 2017
Latest activity Edited by Oddur Bjarnason on 12 Jul 2017
I want to distinguish matrices in a for loop.
The following does not work:
T=[0,1,-0.1,0.8,0;0,0,0,1,0;-0.2,-1,0,-0.2,0;0,0,0,0,0;0.2,0.5,-0.5,-0.2,0]
S0=[1,1,1,1,1]
n=0
for n=1:5
S{n}=S0*T
S{n}=(1./(1 + exp(1).^(-1*S{n})))
S{n+1}=S{n}*T
end
Can somebody help me?

  3 Comments

Hi Oddur, your main problem is that you are setting S{n} to the same value every time at the beginning of the for loop, so the S{n+1} = S{n}*T statement at the end gets killed off and every S comes out the same. You need go get rid of the first statement and put an initial condition for S{1} outside the loop.
KSSV
on 12 Jul 2017
You can proceed like this:
T=[0,1,-0.1,0.8,0;0,0,0,1,0;-0.2,-1,0,-0.2,0;0,0,0,0,0;0.2,0.5,-0.5,-0.2,0] ;
S0=[1,1,1,1,1] ;
S = zeros(5,length(T)) ;
for n=1:5
S(n,:)=(1./(1 + exp(1).^(-1*S0*T)))*T ;
end
What you think is not working?
Again, this gives identical values for all rows of S, and I think an iterative process may be intended.

Sign in to comment.

1 Answer

Answer by Oddur Bjarnason on 12 Jul 2017
Edited by Oddur Bjarnason on 12 Jul 2017
 Accepted Answer

Combining the suggestions of David and KSSV I believe that I have found a solution to my problem. I have been trying to write a simple script for computing a Fuzzy-Logic Cognitive Map. The script is as follows:
T=[0,1,-0.1,0.8,0;0,0,0,1,0;-0.2,-1,0,-0.2,0;0,0,0,0,0;0.2,0.5,-0.5,-0.2,0] ;
S0=[1,1,1,1,1] ;
n=0;
S1=zeros(5,length(T)) ;
S2=zeros(5,length(T)) ;
for n=1:5
S1(n,:)=S0*T^n
S2(n,:)=(1./(1 + exp(1).^(-1*S1(n,:))))
end
Thank you both..

  0 Comments

Sign in to comment.