For loop that executes data from an excel file, your mission should you choose to accept it
    10 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    olivia
 il 6 Set 2023
  
    
    
    
    
    Modificato: Clay Swackhamer
      
 il 6 Set 2023
            I am starting this with an apology, I am extremely new to Matlab and though I have taken 3 coding classes (Python and C) I have recently learned I know nothing. I have been attempting to complete the following for weeks now and I am losing all sanity though I am sure it's simple for those who speak and understand code. 
Here's the mission:
I have been instructed to make a program that accepts/reads latitude,longitude, altitude, roll, pitch, yaw data from an excel file, and then uses that data in the formulas I will provide below to output, for now, simple ECEF coordinates. It is suppose to run a for loop that cycles each value (row 1 column1) of the data (if its necessary to the formula) through the equation and outputs the now transformed coordinate. 
Yes I am aware that matlab has a geodic to ECEF function already but sadly I am not allowed to use it along with any other imeded functions that may seem like and obvious fix. 
I need help understanding how to write a simple for loop that executes that... if I did not explain well even an example slightly similar to that with excel data will be more than helpful. I will greatly appreciate any help. 
Risposta accettata
  Clay Swackhamer
      
 il 6 Set 2023
        
      Modificato: Clay Swackhamer
      
 il 6 Set 2023
  
      Here is some code that reads a simple excel table (attached) and calculates a new variable based on the function "ECEF_function". The code uses a for loop to go through the table one row at a time, and then calculate a new variable called "output" based on the data in the same row of the table:
%% calculate_on_excel_table
%% Setup
clear
close all
clc
%% Get data
T = readtable('excel_data.xlsx')
%% Define an equation for the calculation
% Say it takes two inputs (x and y)
ECEF_function = @(x,y) x^2 + y^2
%% Loop through the table one row at a time
% Calculate some output based on the data in the same row
for i = 1:height(T)
    output(i) = ECEF_function(T.latitude(i), T.longitude(i));
end
%% Now, rename the output and add it back to the table
T.ECEF = output';
T
Dyuman Joshi is right, you should look into preallocating and vectorizing this code. But hopefully this helps you visualize what is going on and get started.
0 Commenti
Più risposte (1)
  Dyuman Joshi
      
      
 il 6 Set 2023
        
      Modificato: Dyuman Joshi
      
      
 il 6 Set 2023
  
      "I need help understanding how to write a simple for loop that executes that"
A basic idea will be - 
3 - Go through the data via a for loop, convert the data using formulae (available by a simple search on the internet, if you don't already know them) and store the data in the preallocated matrix.
You can use vectorization to obtain the output as well, but for now, the above method should suffice.
0 Commenti
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!



