Info
This question is locked. Riaprila per modificarla o per rispondere.
onrammp exercise 14.2 stellar motion part 2, task 6 movaway
    101 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
For task 6 I don't understand how matlab connects starname to a particular graph.
Also I'm not sure how this piece of code works...
 "movaway = starnames(speed < 0) " 
how does this line of code use a variable that is in a loop before this line of code?
Sorry in advance if this is an obvious question.
Task 1
[sHa,idx] = min(spectra);
lambdaHa = lambda(idx);
z = lambdaHa/656.28 - 1;
speed = z*299792.458
Tasks 2 - 4
for c = 1:7
    s = spectra(:,c);
    if speed(c) >= 0
        loglog(lambda,s,"--")
    else
       loglog(lambda,s,"LineWidth",3) 
    end
    hold on
end
hold off
Task 5
legend(starnames)
Task 6
movaway = starnames(speed < 0) 
1 Commento
  Nikita
 il 12 Feb 2024
				Add an if statement to the for loop body. If speed(v) is less than or equal to 0, create a plot of s against lambda using a dashed line (--).
Add the command hold on between the two end keywords so that you only create one plot.
Risposta accettata
  KALYAN ACHARJYA
      
      
 il 3 Gen 2020
        
      Modificato: KALYAN ACHARJYA
      
      
 il 3 Gen 2020
  
      See the example, lets suppose starnames is variable having all types of numbers
starnames=[-2 3 45 7 2 0 -4 5 7 7 6 9];
speed=[2 3 -4 5 6 7 8  0 5 2 -30] ; % Just random example 
## speed<0 is an conditional assignment, its return a logical array (with 0 & 1), when condition true, its 1, otherwise 0 
>> speed < 0
ans =
  1×11 logical array
   0   0   1   0   0   0   0   0   0   0   1
   ## starnames(speed < 0) return an array, where the 1 presence in the above logical array 
>> movaway = starnames(speed < 0)
movaway =
    45     6
 This is just an example to understand the issue (This approach is good way for efficient code, conditional & array indexing)
1 Commento
Più risposte (1)
  Bongani Tavengwa
 il 5 Giu 2020
        
      Modificato: DGM
      
      
 il 22 Feb 2023
  
      Task
Add an if statement to the for loop body. If speed(c) is less than or equal to 0, create a loglog plot of s against lambda using a dashed line (--).
After the if statement, add the command hold on so that only one plot is created.
for c = 1:7
    s = spectra(:,c);
    if speed(c) >= 0
       loglog(lambda,s,"--")
    else
       loglog(lambda,s,"LineWidth",3) 
    end
    hold on
end
please help me where do i go wrong
This question is locked.
Vedere anche
Categorie
				Scopri di più su Marine and Underwater Vehicles in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!