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

MATLAB/COMSOL geometry loops?

  1. Apr 27, 2009 #1
    Hi i'm a new user in Comsol and Matlab and I have to create boxes within a box. Of course those boxes are easy, my problem is how do you make loops in MATLAB that translates to the g1=rect2(blah blah)
    g2=rect2(blah blah)..

    For example:
    The boxes within the outside box varies so it's better to write everything in a loop say 5 boxes
    and i had

    width=[1, 1, 1, 1, 1];
    cornerx=[0, 5, 10, 15, 20];
    for i=1:num;

    Of course that would not work because the variable name will be overwritten everytime the rect2 occurs. Comsol doesn't follow that name=rect2(width(i),length(i),'base','corner','pos',[cornerx,0]), since it only recognizes g1= , g2=, etc.

    Is there any way to write the loop and COMSOL would understand that i want to write 5 or 6 or 7 boxes in a box other than writing out each g1 g2 g3 manually?


  2. jcsd
  3. Mar 19, 2010 #2
    I also had the same problems with making a loop of my geometries in comsol throug matlab. With a little help from this link:


    I manages to make my loop in a while loop, making a cell array :) The problem was that I was not able to use the varible g, i don't know why!?!?!

    My script looks like this:

    while a > a_internal+(i)*(spac+w)
    draw{i} = rect2(w,h,'base','corner','pos',[a_internal+(i-1)*(spac+w),0]);
    i = i+1;

    where a is radius, spac,w,h is different values for my geometry dimention. Then you use acces the structueres with draw{i} where i is the i'th number in your loop..

    Hope it helps you:)
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Similar Discussions: MATLAB/COMSOL geometry loops?
  1. MATLAB - geometry M-file (Replies: 20)

  2. For loop in matlab (Replies: 3)