Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Variable name matlab help

  1. Oct 2, 2009 #1
    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:


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

  2. jcsd
  3. Oct 2, 2009 #2
    Re: URGENT variable name matlab help

    probably the best way is to store them in a vector. You define a vector called v_max with a length equal to the amout of values, in your case that is 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))

    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!
  4. Oct 2, 2009 #3
    Re: URGENT variable name matlab help

    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 ive made it so i get an answer at each n value, so shouldnt the matrix be a 6x4?
    Last edited: Oct 2, 2009
  5. Oct 2, 2009 #4
    Re: URGENT variable name matlab help

    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 (Text):

    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;
    Hope this help.

    p/s: i am totally confused when i read your code. There are many unnecessary parentheses and operators.
  6. Oct 2, 2009 #5
    Re: URGENT variable name matlab help

    Thanks so much, yeh i don't know why i use so many brackets and that, buts it because im use to the calculator and have only been learning MATLAB for a few weeks now :P but im beginning to learn to use less brackets :P
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook