setarehbaran 669 اشتراک گذاری ارسال شده در 9 تیر، ۱۳۹۳ سلام. وقتتان بخیر. من یه بردار دارم که بعضی از اعدادش متوالی و بعضی هاش غیر متوالی هستن. میخوام اعداد متوالی را هرکدام به یک بردار جدا تبدیل کنم. از طرفی میخوام این بردار کلی رو خود متلب بخونه و تشخیص بده که این بردار باید به چندتا بردار جداگانه شکسته بشه ، بعد انها را در بردارهای جداگانه قرار بدهد. نمیدونم چجوری باید این کار رو انجام بدم. ممنون میشم کمک کنید. 2 نقل قول لینک به دیدگاه
Imaaan 17059 اشتراک گذاری ارسال شده در 9 تیر، ۱۳۹۳ سلام. وقتتان بخیر. من یه بردار دارم که بعضی از اعدادش متوالی و بعضی هاش غیر متوالی هستن. میخوام اعداد متوالی را هرکدام به یک بردار جدا تبدیل کنم. از طرفی میخوام این بردار کلی رو خود متلب بخونه و تشخیص بده که این بردار باید به چندتا بردار جداگانه شکسته بشه ، بعد انها را در بردارهای جداگانه قرار بدهد. نمیدونم چجوری باید این کار رو انجام بدم. ممنون میشم کمک کنید. سلام برداتون رو میذارین، یا مثلا یه قسمتش رو؟ 5 نقل قول لینک به دیدگاه
setarehbaran 669 مالک اشتراک گذاری ارسال شده در 9 تیر، ۱۳۹۳ سلام. مرسی. درستش کردم. اینم حوابش: [font=Courier New][size=2][font=Courier New][size=2]clear [/size][/font][/size][/font][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0]all[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0] [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2]close [/size][/font][/size][/font][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0]all[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0] [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2]pos_4mark=[2 3 5 7 8 9 10 12 15] len_4=length(pos_4mark); dist_vec=[]; [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2] i=1:len_4-1[/size][/font][/size][/font] [font=Courier New][size=2][font=Courier New][size=2] dist_vec=[dist_vec pos_4mark(i+1)-pos_4mark(i)]; [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]end [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2] i=1:length(dist_vec)[/size][/font][/size][/font] [font=Courier New][size=2][font=Courier New][size=2] gaps_4=find(dist_vec~=1); [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]end [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2]num_sub_grp=length(gaps_4); groups_4=cell(num_sub_grp+1,1); groups_4{1}=pos_4mark(1):pos_4mark(gaps_4(1)); groups_4{num_sub_grp+1}=pos_4mark(gaps_4(num_sub_grp)+1):pos_4mark(len_4); [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2] i=1:num_sub_grp-1[/size][/font][/size][/font] [font=Courier New][size=2][font=Courier New][size=2] groups_4{i+1}=pos_4mark(gaps_4(i)+1):pos_4mark(gaps_4(i+1)); [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]end [/color][/size][/font][/color][/size][/font][/color][/size][/font] 1 نقل قول لینک به دیدگاه
Imaaan 17059 اشتراک گذاری ارسال شده در 9 تیر، ۱۳۹۳ سلام. مرسی. درستش کردم. اینم حوابش: [font=Courier New][size=2][font=Courier New][size=2]clear [/size][/font][/size][/font][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0]all[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0] [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2]close [/size][/font][/size][/font][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0]all[/color][/size][/font][/color][/size][/font][/color][/size][/font] [font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0][font=Courier New][size=2][color=#a020f0] [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2]pos_4mark=[2 3 5 7 8 9 10 12 15] len_4=length(pos_4mark); dist_vec=[]; [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2] i=1:len_4-1[/size][/font][/size][/font] [font=Courier New][size=2][font=Courier New][size=2] dist_vec=[dist_vec pos_4mark(i+1)-pos_4mark(i)]; [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]end [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2] i=1:length(dist_vec)[/size][/font][/size][/font] [font=Courier New][size=2][font=Courier New][size=2] gaps_4=find(dist_vec~=1); [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]end [/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2]num_sub_grp=length(gaps_4); groups_4=cell(num_sub_grp+1,1); groups_4{1}=pos_4mark(1):pos_4mark(gaps_4(1)); groups_4{num_sub_grp+1}=pos_4mark(gaps_4(num_sub_grp)+1):pos_4mark(len_4); [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][font=Courier New][size=2][font=Courier New][size=2] i=1:num_sub_grp-1[/size][/font][/size][/font] [font=Courier New][size=2][font=Courier New][size=2] groups_4{i+1}=pos_4mark(gaps_4(i)+1):pos_4mark(gaps_4(i+1)); [/size][/font][/size][/font][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff][font=Courier New][size=2][color=#0000ff]end [/color][/size][/font][/color][/size][/font][/color][/size][/font] از اینم می تونین استفاده کنین، کوتاه تره: clear; pos_4mark = [2 3 5 7 8 9 10 12 15]; pos_4mark_diff = diff(pos_4mark); idx = find(pos_4mark_diff~=1); group = mat2cell(pos_4mark,1,[idx(1) diff(idx) length(pos_4mark)-idx(end)]) 3 نقل قول لینک به دیدگاه
ارسال های توصیه شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .