# data[].attributes.body
Array Processing is one of the most basic learning outcome we use in this class, but it can also be one of the most difficult to understand. Array processing is using matrices to solve engineering problems and organize/manipulate data.

# data[].attributes.body
The colon operator uses a colon (:) to create a vector across a set interval from a minimum to a maximum value. This becomes very useful when you are dealing with an excess of evenly spread numbers. The following shows a vector created using a colon operator.
ex) matrix = [3:3:9; 4 13 9; 4:-2:0]
3:3:9 will create a vector from 3 to 9 by an interval of 3.
4:-2:0 will create a vector from 4 to 0 by an interval of -2.

# data[].attributes.body
The following picture provides evidence from the first project. In this project we were given a set of data which I then turned into a matrix to assign to variables. Rather than creating individual variables, I created one matrix and called specific rows/columns when I needed them.

# data[].attributes.body
In the above picture, I used the colon to call each row while assigning variables.
force = mat(:,1)
This line of code uses the colon to call every row for column 1.

# data[].attributes.body
I feel very comfortable using arrays in my codes, because over the course of this quarter I have had many opportunities to practice and utilize arrays. I have utilized arrays in nearly every lab and project that we have submitted thus far. I often use arrays to make my code simpler and easy to follow so that there is no confusion in data.

# data[].attributes.body
Loops are a form of code by which values are tested for certain required conditions. There are two types of loops, for and while.

# data[].attributes.body
A for loop consists of statements and conditions that test values. The loop continues to test each value and often use if/else statements to test values.

# data[].attributes.body
While loops have the same purpose as for loops, to see if values meet certain conditions. However, while loops test values so long as they meet a specific initial condition. Once the condition is no longer met, the loop ends.

# data[].attributes.body
Attached is an image taken from Project 2. In the project I created a user-defined function that consisted of loops. The for loop below, uses if and elseif statements to determine the volume of a multi-shape structure. The loop uses inputs R and d to determine the volumes based on specific conditions.

# data[].attributes.body
After Project 2 I feel comfortable using loops. I mostly used 'for' loops, so I have limited practice with while loops. However, I feel that, although my experience is limited, I understand loops well enough to be able to apply them if need be. I believe loops are another integral aspect of MATLAB coding and that this course will continue to give me practice with them.

# data[].attributes.body
An algorithm is the preliminary steps leading up to the creation of your code. In this class we use algorithms to better understand the problems we are faced with. Our algorithms consist of step by step solutions for our tasks. Each step is another section of code that we will later translate.

# data[].attributes.body
I prefer to create numerical, step by step, algorithms rather than creating the shaped algorithms that consist: rectangles, diamonds, and parallelograms. Personally, the step by step approach is easier to grasp and follow.
The following is an algorithm that I created for Project 1. Each step represents an aspect of the code that I would later translate into actual MATLAB code.

# data[].attributes.body
I feel as though algorithms are extremely helpful for understanding the problems we are tasked to solve. Algorithms can help us take a step back from the daunting task so that we can better understand what is asked of us. Creating algorithms have become a integral aspect of this course, because we are tasked to do so for each project. This gives us plenty of experience creating algorithms. At this point in the quarter I feel very comfortable creating algorithms for assignments.

# data[].attributes.body
Translating algorithms is arguably the most common learning outcome we will use throughout this quarter. Like its name would lead you to believe, translating algorithms is simply turning your step-by-step plan into functioning code. While it may sound simple enough, this could very-well be the hardest step in your process.

# data[].attributes.body
Translating your algorithms into working code is very difficult. The hardest aspect is determining how you will turn your individual steps into code using: built-in or user-defined functions, or by using arrays and numerous calculations. Most of the time I find myself straying from my original algorithm to find simpler steps.

# data[].attributes.body
As evidence of my ability to translate (my rather broad algorithms) I would refer to my Project 2 algorithm. My algorithm for Project 2 was extremely broad because I did not yet understand what was being asked of me or how to proceed. Leaving my algorithm broad, gave me a range of freedom to attempt different methods to reach my final answer. After the Project was submitted we were asked to talk about any adjustments we made to our algorithm. In that submission I mentioned that while I followed my algorithm as a general guide, I did take much more in-depth steps such as creating a user-defined function.

# data[].attributes.body
I am confident in my ability to translate my algorithms. Translating your algorithms is another major part of this course. Creating an algorithm that helps you understand the task at hand, makes creating and organizing your code much easier. I have had quite a bit of experience in translating my algorithms since beginning this course, and thus I feel confident in my ability to do so.

# data[].attributes.body
This learning outcome is fairly broad in what we are expected to learn. Basically, can we spot the differences between: scripts and functions (built-in and user-defined).

# data[].attributes.body
A MATLAB script is a file in which you prepare your code for later use. Instead of typing your code in the command window, you prepare your code in a script file and save it under a specific domain. You can then run this code whenever you want, so long as you have it opened. Scripts are very clean and are easy to follow and understand since you can comment on them.
Attached is a test script that I created using an array and the built-in mean function to find the average of mat1.

# data[].attributes.body
A built-in function is a function that is built into MATLAB. You can use this function in your code by simply implementing it into your code. An example of a built-in function is as follows:
avg = mean(mat1)
outputs
avg = 102.5

# data[].attributes.body
A user-defined function is a function that the user creates in a separate script file. The user names the function and then codes it to do what he/she wants. The user can later call on this function whenever they deem necessary.
The following is a user-defined function (TotalVolume) that I created for Project 2. The function consists of a for loop with if/elseif statements, and requires inputs d and R.

# data[].attributes.body
The ability to distinguish between the types of code and files in front of you is an extremely underestimated task because each file has its own specific properties. I feel very confident in my ability to distinguish between scripts and the different types of functions. With the amount of practice I receive from the numerous assignments, I have become very comfortable understanding the types of code presented to me.

# data[].attributes.body
A selection structure is a form of code in which values are tested and outputs are given based on conditions met by the input values. These structures are usually in the form of if and else statements.

# data[].attributes.body
An if statement is the first line of code in a election structure. It starts the test by saying that "if the input meets this condition, then (output)".

# data[].attributes.body
Else statements are tested if the "if" conditions are not met. Else/elseif statments serve the same purpose as if statements, however they follow if statements in the code order.

# data[].attributes.body
The following code from Project 2 Draft contains a set of code using selection statements. As seen, the if/elseif statements test the input value d(j) at the designated conditions.

# data[].attributes.body
My code for Project 2 was later condensed by combining the statements into a single structure of if/else statements (shown below) rather than having three separate structures. I believe the new code is evidence of my improvement and knowledge of selection structures.

# data[].attributes.body
I feel comfortable with selection structures because I have had many opportunities to put them into my code. I thoroughly understand their purpose and importance and I believe I know how to implement them correctly and effectively. I believe that my Project 2 Code is evidence of my success with this objective because of my codes improvement after some practice.

# data[].attributes.body
Data analysis in MATLAB is the act of using built-in functions to assist in solving for: averages, maximum/minimum values, and the standard deviation. The class defined data analysis as inspecting, transforming, and modeling data with the goal of discovering information about the data.

# data[].attributes.body
Symbolic math is when you make symbolic variables in MATLAB. You can then use these symbolic variables to solve equations, do calculus and linear algebra and even do dimensional analysis. Symbolic math in MATLAB is a very useful tool because it allows you to do math with variables with unknown quantities.

# data[].attributes.body
Image processing is one of the more interesting topics we covered in our studies of MATLAB. Image processing consists of uploading, editing, and maneuvering around image files to gather data from the images. When you upload an image to MATLAB in transfers the image to a matrix based on individual pixel colors from the original image. You can then use these matrices to gather data and solve problems.

# data[].attributes.body
Interpolation is a mathematical technique, by which you use data given to estimate other data points at values that were not observed. Basically, you are solving for values at a point between other data points. This is a very useful technique which MATLAB summarizes into a few different methods.

# data[].attributes.body
Attached are images from Lab 5, where we were given data regarding the Sacramento River. We were asked to use data analysis to determine certain values. Seen below is the data that was gathered using the csvread function. I then took that data and transferred them to string values.

# data[].attributes.body
Attached are images from Lab 6 where we were asked to use symbolic math. The first image shows me setting "x" as a symbolic variable using the "syms" operator. I then use the new variable x to solve for force, shear force and bending moment. Using the 'int' function I can determine the integral of whatever variable I choose. Since, 'force' is already a symbolic value the integral of force will also be a symbolic value.

# data[].attributes.body
Below is another image from Lab 5. Here I took the data in the previous image and, using data analysis, found the: minimum, maximum, average, and standard deviation.

# data[].attributes.body
After using data analysis in Lab 5 I feel very comfortable with the functions and techniques in data analysis. Since, data analysis consists mainly of using built-in functions, such as: min(x),max(x),mean(x), it is very simple and easy to learn. I feel very confident in my ability to analyze data using MATLAB, given the opportunity.

# data[].attributes.body
Below is another image from Lab 6 where I use symbolic math. Here, I set 't, time' as a symbolic variable and solved for height using a given function. Since, t is now a symbolic variable with no value the function does not get solved. I then solve for the derivative of height to find velocity and then eventually acceleration. These will also be symbolic functions since they consist of the variable 't'.

# data[].attributes.body
After Lab 6, I feel very confident in my ability to use symbolic math. The basic step is to make a variable symbolic by using the 'syms' operator. After that, everything else is quite simple. I believe using symbolic math is one of the easier topics we covered in this class, and I believe if tasked with using it, I could be very successful.

# data[].attributes.body
Using the 'interp1' function, you can use linear interpolation to solve for a y value given a range of x values.

# data[].attributes.body
Cubic spline interpolation returns a vector of interpolated values, using interpolation of the 3rd degree. We didn't use this method much.

# data[].attributes.body
Polynomial regression returns the coefficients for a polynomial of degree n that is the best fit for the desired y values. You would use this method for higher order interpolation.

# data[].attributes.body
Attached is an image, from Lab 7, of the only time I used interpolation in my code. I used linear interpolation and the 'interp1' function to interpolate for the values of x in the desired range of "shear" values.

# data[].attributes.body
If tasked with using interpolation techniques, I believe I would be able to complete the task efficiently and effectively. Although we covered interpolation in the class, we didn't get much experience using the actual functions while coding, so there is still some uncertainty when using this technique. I do believe however, that I understand its purpose well-enough to use it if necessary.

# data[].attributes.body
In Lab 8, we were given the task to determine data from an image of coins (dimes and nickels). Attached is an image showing the uploaded image file.

# data[].attributes.body
Attached is another image from Lab 8. This image shows the part of code where I created a figure with 9 subplots. Each subplot hosted an image that I created using the provided functions. Each image was a variation of the original uploaded image, where I edited it to fit the requirements of the lab. For instance, one image shows only dimes. This is done by removing the pixels that made up the image of nickels. These pixels had a certain size, and therefore could be edited.

# data[].attributes.body
Attached is an image of the figure described above.

# data[].attributes.body
After Lab 8, I feel somewhat comfortable with image processing, however I do not believe I am anywhere close to being proficient with the skill. In Lab 8, the functions and techniques were provided for us and we merely had to copy them into our code, so I do not believe the lab is a good representative of my ability to do image processing. I do believe, however, that I would be able to upload and edited images if asked to do so, it would just take some time.

# data[].attributes.body
Tables and Figures were one of the first things I learned in MATLAB. As the most basic form of displaying data, figures and tables became an integral part of pretty much every assignment. While we never really used tables in our code, figures were a necessary part of code.

# data[].attributes.body
Attached are images from numerous coding assignments where I used figures. The first image is from Lab 6. Here, I created a figure with 3 subplots. Each subplot represented another function that was graphed.

# data[].attributes.body
Attached is another image from Lab 6, this image uses different functions for its subplots.

# data[].attributes.body
Attached is an image from Project 1. In this figure I compared force vs. displacement of a spring, and used the best-fit line to determine the spring constant.

# data[].attributes.body
This final image is from Lab 7. Unlike other assignments, this lab had me use handles to edit figures. You can see that I used numerous handles to edit font size, location and other various aspects of the figure.

# data[].attributes.body
I feel extremely comfortable with my ability to create and use figures. We did not really use tables in this class so I cannot say whether or not I feel comfortable with that, however I believe I could handle it if need be. Figures have become an integral part of my coding experience and thus I feel very good about my ability to complete tasks involving figures.

# data[].attributes.body
Over the course of this quarter I have learned many new skills and techniques to become proficient in MATLAB. I have succeeded in many projects but not before I failed numerous times. In my attempts to perfect my code I stumbled across many roadblocks. Simple roadblocks like, missing a '.', or '=', or big roadblocks like missing inputs or functions. As for my debugging skills, I truly believe that having a peer review your code can help you get out of the focused mindset and see your code in a new light. Regardless of the errors I always persisted through and, with the help of classmates and friends, I was able to learn from my mistakes and become fairly comfortable in my first ever coding language.