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

Linspace problem in Matlab

  1. Feb 8, 2015 #1
    The following Matlab program

    clc
    clear all
    for ef=1:100
    ky=linspace(-ef,ef,ef*2);
    for n=1:3
    r(n,:)=2*ky;
    end
    end


    encounters this error:

    ??? Subscripted assignment dimension mismatch.

    Error in ==> testarrays at 6
    r(n,:)=2*ky;


    But if I use ky=linspace(-ef,ef); there is no error! why?
    In other words, what should I do to control the number of ky-points in each loop?
     
  2. jcsd
  3. Feb 9, 2015 #2

    DrClaude

    User Avatar

    Staff: Mentor

    Next time, please enclose your code in the proper "CODE" tags:
    Code (Text):

    clc
    clear all
    for ef=1:100
    ky=linspace(-ef,ef,ef*2);
    for n=1:3
        r(n,:)=2*ky;
    end
    end
     
    I guess you are doing something with r after the inner loop, otherwise your code doesn't make sense.

    The problem is that the size of r is set the first time around, and won't adjust as the length of ky increases as ef changes. You need to reassing r to an array of the proper size:
    Code (Text):

    clc
    clear all
    for ef=1:100
       ky=linspace(-ef,ef,ef*2);
       r = zeros(3,size(ky,2));
       for n=1:3
          r(n,:)=2*ky;
       end
    end
     
     
  4. Feb 12, 2015 #3
    Thank you very much. But I can't understand why I have to reassign the size of r in each loop? Why this problem doesn't happen for ky?
    I would be grateful also if you tell me how to write in "CODE" tags.
     
  5. Feb 12, 2015 #4

    DrClaude

    User Avatar

    Staff: Mentor

    Because for ky, as for r in my version, the entire variable gets reassigned. When you write r(n, : ), the size of r is fixed: the ":" will be replaced by the indices from 1 to the second dimension of r.

    Just use
    [C O D E]
    some code
    [/C O D E]
    (without the spaces between the letters in CODE).
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Linspace problem in Matlab
  1. Matlab problem (Replies: 4)

  2. Matlab problem (Replies: 0)

  3. MATLAB problem (Replies: 5)

  4. MATLAB problem (Replies: 1)

Loading...