Info
This question is locked. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
onrammp exercise 14.2 stellar motion part 2, task 6 movaway
    108 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Darnell Gawdin
      
 am 3 Jan. 2020
  
    
    
    
    
    Locked: DGM
      
      
 am 17 Jul. 2024
            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 Kommentar
  Nikita
 am 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.
Akzeptierte Antwort
  KALYAN ACHARJYA
      
      
 am 3 Jan. 2020
        
      Bearbeitet: KALYAN ACHARJYA
      
      
 am 3 Jan. 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 Kommentar
Weitere Antworten (1)
  Bongani Tavengwa
 am 5 Jun. 2020
        
      Bearbeitet: DGM
      
      
 am 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.
Siehe auch
Kategorien
				Mehr zu Marine and Underwater Vehicles finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!








