# Understanding ans in MATLAB | Episode 1

In MATLAB, `ans` is a special variable that automatically stores the result of expressions or function calls that are not assigned to any variable. It's a handy feature for quickly checking results or performing calculations on the fly in the Command Window. However, its use comes with certain precautions in scripts or functions.

#### What is `ans`?

* **Temporary Storage**: `ans` acts as a placeholder for results of calculations or function outputs where no explicit variable is defined.
    
* **Workspace-Specific**: `ans` is specific to the workspace it's used in. MATLAB maintains separate instances of `ans` for the base workspace and each function workspace.
    

#### Why Caution is Advised

* **Changeability**: The value of `ans` can change with each operation that produces an output without an explicit assignment, making it unreliable for storing the results you wish to keep.
    
* **Readability**: Using `ans` in scripts or functions can make your code harder to read and understand, especially for others reviewing your work.
    

### **Examples and Best Practices**

#### Example 1: Simple Calculation

```basic
% Performing a calculation without assigning the result to a variable.
2 + 2

% MATLAB stores the result in `ans`.

% Output: ans = 4
```

#### Example 2: Using `ans` for Further Calculations

```basic
% After the above operation, `ans` is 4.
% You can use `ans` in another calculation.

ans * 2

% Output: ans = 8
```

**Note**: While this demonstrates `ans`'s utility, it's better practice to assign results to descriptive variables.

#### Example 3: Assigning Results to Variables

```basic
% A better approach: assigning the result to a variable.

result = 4 + 4

% Output: result = 8
```

After this operation, `result` holds the value `8`, and `ans` remains unchanged from its last assignment unless another unassigned calculation or function call is made.

#### Example 4: **Call a Function That Returns Output**

```basic
function a = outputFunc()
    a = 100;
end

% call 'outputFunc' in MATLAB
```

Call 'outputFunc ' in MATLAB will store the returned result in the '`ans`' if an output variable is not specified to save the result of a function.

`outputFunc`

after calling 'outputFunc' the '`ans`' will have a value of 100.

```basic
% Performing a calculation without assigning the result to a variable.
2 + 2
```

MATLAB will store the above result in the `ans` and after calling 'outputFunc' with an output variable assignment:

`saveResult = outputFunc`

the '`saveResult`' variable will have a value of 100 and `ans` will still be holding a value of 4.

#### Example 5: **Using** `ans` within the function

```basic
function result = useAnsExample()
    2 + 2; % This operation's result is not assigned to a variable
    result = ans * 10; % ans now holds the value 4 from the previous operation
end
```

#### Best Practices

1. **Use Descriptive Variable Names**: Instead of relying on `ans` for storing results, assign outputs to variables with meaningful names.
    
2. **Limit**`ans` Usage to Interactive Exploration: `ans` is most useful for quick calculations in the Command Window, not in scripts or functions.
    
3. **Maintain Readability**: For clearer, more maintainable code, avoid using `ans` in your scripts or functions. Directly assign outputs to well-named variables.
    

## **Youtube Tutorial**

%[https://www.youtube.com/watch?v=W7GB99B1IDQ] 

## **Conclusion**

While `ans` is a convenient feature in MATLAB for quick calculations and checks, understanding its behavior and limitations is crucial for effective and clear MATLAB programming. By following best practices and using `ans` judiciously, you can enhance the readability and reliability of your code.
