Array indices must be positive integers or logical values.
    8 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Michael Ryan
 il 25 Ott 2021
  
    
    
    
    
    Commentato: Michael Ryan
 il 25 Ott 2021
            Can't seem to figure out the reason for the error.  The array indices, i, as far as I can tell are intergers between 1 and 1000.
Attached is the code:
clear
clc
close all
t = linspace(0,2,1000);
f = zeros(1,length(t));
for i = 1:length(t)
    if  t(1i) <= 1
        f(1i) = 2-(2.*((t(1i)-1).^2));
    elseif t(1i) > 1 
        f(1i) = 0;
    end
end
plot(t,f)
Returns the error:
Array indices must be positive integers or logical values.
Error in aufgabe1 (line 10)
f(1i) = 2-(2.*((t(1i)-1).^2));
0 Commenti
Risposta accettata
  Scott MacKenzie
      
 il 25 Ott 2021
        
      Modificato: Scott MacKenzie
      
 il 25 Ott 2021
  
      You've got a typo in your code.  Change the indices
1i
to
i
Più risposte (1)
  Walter Roberson
      
      
 il 25 Ott 2021
        t = linspace(0,2,1000);
t is a (real) vector of length 1000
    if  t(1i) <= 1
That asks to index the vector t at location 1i . However, 1i means sqrt(-1) which is not real-valued and is not a positive integer.
1 Commento
  Walter Roberson
      
      
 il 25 Ott 2021
				t = linspace(0,2,1000);
nt = length(t);
f = zeros(1,nt);
for K = 1:nt
    if  t(K) <= 1
        f(K) = 2-(2.*((t(K)-1).^2));
    elseif t(K) > 1 
        f(K) = 0;
    end
end
plot(t,f)
ylim([-1 3])
Vedere anche
Categorie
				Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
