MATLAB How can I save all values for v_max in MATLAB when n ranges from 5 to 10?

  • Thread starter Thread starter mathsgeek
  • Start date Start date
  • Tags Tags
    Matlab Variable
AI Thread Summary
To save all values of v_max in MATLAB for n ranging from 5 to 10, a vector should be initialized to store the results. The correct approach involves defining a vector with a length equal to the number of iterations and assigning each computed value to the appropriate index within the loop. The error "Subscripted assignment dimension mismatch" occurs due to incorrect array dimensions in the assignment. It is important to ensure that the operations within the loop correctly match the expected dimensions of the arrays involved. Simplifying the code by reducing unnecessary parentheses can also help clarify the calculations.
mathsgeek
Messages
63
Reaction score
0
URGENT variable name MATLAB help

How do i change the variable, so it saves all the values, even if it must happen for 6 different variables name. This is because when i run it, it only saves the values for v_max when n=10 as this is the last iteration. How can i make all the values be saved. My coding is below:

radius=1:0.5:2.5;
total_flow_velocity=5

for n=5:1:10
v_max = (total_flow_velocity.*(1+n).*(1+(2.*n)))./((2.*pi)*((radius.*n).^2))
end

Thanks
 
Physics news on Phys.org


probably the best way is to store them in a vector. You define a vector called v_max with a length equal to the amount of values, in your case that is 6:

v_max=[1:6];

then you can store each value in one of the positions of the maxtrix like:

for n=5:1:10
v_max(1,n-4) = (total_flow_velocity.*(1+n).*(1+(2.*n)))./((2.*pi)*((radius.*n).^2))
end

I used n-4 to define column number 1 because you start with n=5. After that you can recall any value by typing:

v_max(1,1) ... v_max(1,6)

good luck!
 


ive tried it but i get the error "Subscripted assignment dimension mismatch." ? Also why did u do vmax=[1:6] because for each r value I've made it so i get an answer at each n value, so shouldn't the matrix be a 6x4?
 
Last edited:


JeroenS' code has a mistake inside for loop. v_max(1,n-4) ==> indicate member (1, n-4) of array v_max. However, in the calculation, he forgot to delete the operator for array: (radius.*n). This operator (.*) will return an array radius multipled by n. So, in the left-side, you have 1 variable, not an array but in right side, there is an array. That's the reason MATLAB throws an error.

My code is:

Code:
vM = [];
j = 0;

radius = 1 : 0.5 : 2.5;
tfv = 5;

for n = 5 : 1 : 10
    j = j + 1;
    nR = 2 * pi * (radius * n).^2;
    vM(j, :) = (1 + n) * (1 + 2*n) * tfv ./ nR;
end

Hope this help.

p/s: i am totally confused when i read your code. There are many unnecessary parentheses and operators.
 


Thanks so much, yeh i don't know why i use so many brackets and that, buts it because I am use to the calculator and have only been learning MATLAB for a few weeks now :P but I am beginning to learn to use less brackets :P
 

Similar threads

Replies
10
Views
3K
Replies
4
Views
1K
Replies
2
Views
2K
Replies
2
Views
2K
Replies
1
Views
2K
Back
Top