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

  • Topic: MATLAB 
  • Thread starter Thread starter mathsgeek
  • Start date Start date
  • Tags Tags
    Matlab Variable
Join the discussion
Registration is free. Start your own thread to ask a follow-up.
4 replies · 4K views
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