unknown number of elements

1 次查看(过去 30 天)
reham zoka
reham zoka 2015-5-11
评论: reham zoka 2015-5-11
I'm a beginner ...... I have unknown number of stream orders (st.order).... For each st.order i have unknown number of streams (st.number(st.order)) each one wit a different length.... I wanna get the number of the streams and the sum of their lengths for each stream order in a structure or in 3 vectors (stream order, the number of the streams and the sum of their lengths).....i tried this but it doesn't work.
if true
[fn pn] = uigetfile('*.*','pick an image');
complete = strcat(pn,fn);
I = imread(complete);
imshow(I,[])
hold on
xy = [];
n = 0;
but = 1;
while but == 1
[xi,yi,but] = ginput(1);
plot(xi,yi,'rx','LineWidth',2)
n = n+1;
xy(:,n) = [xi;yi];
end
plot(xy(1,:),xy(2,:),'m-','LineWidth',2);
scale = sum(sqrt(diff(xy(1,:)).^2 + diff(xy(2,:)).^2));
st.order = input('stream order=');
for st.order = 1:??;
st.number(st.order) = 0;
st.length(st.order) = 0;
for m='y':'n';
xy = [];
n = 0;
but = 1;
while but == 1
[xi,yi,but] = ginput(1);
plot(xi,yi,'rx','LineWidth',2)
n = n+1;
xy(:,n) = [xi;yi];
end
plot(xy(1,:),xy(2,:),'m-','LineWidth',2);
l = (sum(sqrt(diff(xy(1,:)).^2 + diff(xy(2,:)).^2)))/scale;
st.number(st.order) = st.number(st.order)+1;
st.length(st.order) = st.length(st.order)+l;
m=input('Do you want to continue, y/n [y]:','s');
if m=='n'
break
end
end
st.order = st.order+1
end
any one could help??
  2 个评论
Ingrid
Ingrid 2015-5-11
it is not really clear what you want to obtain. Also, if you use a for-loop there is no need to increment at the end as this is done automatically (this would be required if you would be using a for-loop also you are assiging the st.order and then re-assign it in your code maybe you are trying to do this?
st.order = input('stream order=');
for ii = 1:st.order
st.number(ii) = 0;
st.length(ii) = 0;
...
end
but again, it is not clear what you are trying to achieve, and most of all, if the structure you design is the appriorate way to go (in your tag you placed matrices but you do not put your data in a matrix but in a structure)
reham zoka
reham zoka 2015-5-11
As an example, for any image like that
I want to digitize the image and obtain a result like that (where L=the length of the digitized line)
the way to get the result is up to you

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Geometric Transformation and Image Registration 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by