Matlab code but i'm having problems puting in a loop

  • Thread starter manicwhite
  • Start date
  • #1
Hi. i have seen similar questions on here but cant quite get them to apply to my problem

i have wrote some matlab code but i'm having problems puting in a loop

heres my code
-----------------------------------------------------------------------------------------

clear
clc
for i=1:10
name=['C:\Documents and Settings\john\My Documents\matlabfiles\t2\p',num2str(i),'t2a.asc'];
load(name);

end
clear name

track1=findvarible(p1t2a,31);
track2=findvarible(p2t2a,31);
track3=findvarible(p3t2a,31);
track4=findvarible(p4t2a,31);
track5=findvarible(p5t2a,31);
track6=findvarible(p6t2a,31);
track7=findvarible(p7t2a,31);
track8=findvarible(p8t2a,31);
track9=findvarible(p9t2a,31);
track10=findvarible(p10t2a,31);
--------------------------------------------------------------------------------
i would like to put the last block into a loop

the files pit2a are arays of varying size (x,66). i want to take one column of interest out
i have tried puting these values into an aray 'track' like this.

---------------------------------------------------------------------------
% track=zeros(85,66)
% for i=1:10
% track(:,i)=findvarible(eval(['p',int2str(i),'t4a']),31);
% end
--------------------------------------------------------------------------
this caused me problems because the variables were of different sizes so i tried pre defining the aray to the biggest varible but that didnt work


the function findvarible is(see below). its in there for an adition i intend to add later
-------------------------------------------------------------------
function [ varible ] = findvarible( filename,var )
varible=filename(:,var);
end
--------------------------------------------------------------------

i have tried using a lop to do it like the top bit automaticaly but i just cant get it to work.


so anyways. any help that puts me in the right direction to geting that top block into a loop would be helpfull

hope that wasnt to wishywashy
 

Answers and Replies

  • #2


tried this

%track(:,1)=p1t4a(:,31);% this line checks it can work works

for i=1:10
name=['p',int2str(i),'t4a']
track(:,i)=name(:,31)
end



got this error

??? Index exceeds matrix dimensions.

Error in ==> test4compare at 14
track(:,i)=name(:,31)
 
  • #3


i think i already mentioned something similar to this

for i=1:10
name=['p',int2str(i),'t4a']
track(:,i)=eval(['p',int2str(i),'t4a(:,31)'])
end

the first one runs then i get an error saying
??? Subscripted assignment dimension mismatch.

Error in ==> test4compare at 14
track(:,i)=eval(['p',int2str(i),'t4a(:,31)'])
 
  • #4


for i=1:10
name=['p',int2str(i),'t4a']
eval(['track', int2str(i) '=p',int2str(i),'t4a(:,31)'])
end

ok i have a working loop. i am happy. if you have a better solution to the problem please still post
 

Related Threads on Matlab code but i'm having problems puting in a loop

Replies
8
Views
755
Replies
4
Views
1K
Replies
1
Views
6K
Replies
3
Views
1K
Replies
1
Views
2K
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
1
Views
2K
  • Last Post
Replies
22
Views
5K
  • Last Post
Replies
14
Views
4K
  • Last Post
Replies
0
Views
5K
Top