MATLAB 板


LINE

※ 引述《ches51311 (游泳迪)》之铭言: : 嗨嗨各位好 这是小弟我第一次发文 : 问题是这样的 我有1 2 3 4 5 6 六个数字 : 希望能找出所有後一数比前一数大於或小於的排列 : 就像我现在想排三位的 排法就有 : 111 112 113 114 115 116 : 122 123 124 125 126 : 133 134 135 136 : 144 145 146 : ....... : 555 556 566 : 666 : 然後他的回圈如下 : a=0; : x=[]; : for i1=1:6 : for i2=i1:6 : for i3=i2:6 : x(a)=i1*100+i2*10+i3; : a=a+1; : end : end : end 你确定你这样列出来的就是你前面那堆三位数? 我怎麽看你都是把111~666全部列出来啊 : 这样就能求出我的x阵列 每个都是三位数 : 然後现在希望使用者可以输入她想要的位数 : 像如果他输入2的话 就会有如下回圈的程式 : a=0; : x=[]; : for i1=1:6 : for i2=i1:6 : x(a)=i1*10+i2; : a=a+1; : end : end : 如果输入3 就会有第一个回圈的程式 : 於是我就卡关了 不知道怎麽让for回圈数随着输入值变而变 : (有想过用递回 但没写出来 还是说可以写出来?) : 因此请教各位大大<(_ _)> : ..................................................... : 不好意思 我再写详细一点 : 现在题目是 我想写一个函数func(n) : 然後如果我输入func(1) 会出来阵列x 让 : x(0)=1 x(1)=2 x(2)=3 x(3)=4 x(4)=5 x(5)=6 : 如果输入func(2) 就会出来阵列x 让 : x(0)=11 x(1)=12 x(2)=13 x(3)=14 x(4)=15 x(5)=16 : x(6)=22 x(7)=23 x(8)=24 x(9)=25 x(10)=26 : x(11)=33 x(12)=34 x(13)=35 x(14)=36 : x(15)=44 x(16)=45 x(17)=46 : x(18)=55 x(19)=56 : x(20)=66 : 如果输入func(3) 就会出来阵列x 让 : x(0)=111 x(1)=112 x(2)=113 x(3)=114 x(4)=115 x(5)=116 : x(6)=122 x(7)=123 x(8)=124 x(9)=125 x(10)=126 : x(11)=133 x(12)=134 x(13)=135 x(14)=136 : x(15)=144 x(16)=145 x(17)=146 : x(18)=155 x(19)=156 : x(20)=166 : x(21)=222 x(22)=223 x(23)=224 x(24)=225 x(25)=226 : x(26)=233 x(27)=234 x(28)=235 x(29)=236 : x(30)=244 x(31)=245 x(32)=246 : x(33)=255 x(34)=256 : x(35)=266 : x(36)=333 x(37)=334 x(38)=335 x(39)=336 : x(40)=344 x(41)=345 x(42)=346 : x(43)=355 x(44)=356 : x(45)=366 : x(46)=444 x(47)=445 x(48)=446 : x(49)=455 x(50)=456 : x(51)=466 : x(52)=555 x(53)=556 : x(54)=566 : x(55)=666 : 以此类推 然後像func(1)的程式 : a=0; : x=[]; : for i1=1:6 : x(a)=i1; : a=a+1; : end : func(2)的程式 : a=0; : x=[]; : for i1=1:6 : for i2=i1:6 : x(a)=i1*10+i2; : a=a+1; : end : end : func(3)的程式 : a=0; : x=[]; : for i1=1:6 : for i2=i1:6 : for i3=i2:6 : x(a)=i1*100+i2*10+i3; : a=a+1; : end : end : end : n是多少 for就有多少 : 不过就是不会打会随着n变 for的个数也变的程式 因此请教各位大大 假设是你原文的case 想要从123456抓3个数(可重复)排成3位数xyz 而且x<=y<=z 我会这样写: M=6; N=3; [ a3 a2 a1 ]=ndgrid(1:6); a=[ a1(:) a2(:) a3(:) ]; %到这边为止列出所有111~666 这方法也比你纯用for快 b=unique(sort(a,2),'rows'); %这个想法是把所有123 321的全部重排 %所以321也会变成123 然後再把重复删去 就变成你要的 x=b*(10.^(N-1:-1:0))'; %最後就是你要的x 但是这样仍有你说的问题 因为[a3 a2 a1]这种仍然会随N改变 所以这就是我推文建议的用for回圈写成字串然後再用eval执行 具体如下: %% str1='[ '; for ii=1:N str1=sprintf([str1,'a%d '],N-ii+1); end str1=[str1,']=ndgrid(1:M);']; eval(str1); %% str2='a=[ '; for ii=1:N str2=sprintf([str2,'a%d(:) '],ii); end str2=[str2,'];']; eval(str2); %% b=unique(sort(a,2),'rows'); x=b*(10.^(N-1:-1:0))'; 大概就是这样吧 -- 正妹也只不过是一组物质波方程的特解罢了(  ̄ c ̄)y▂ξ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.37.128.238
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1407672464.A.5A5.html
1F:→ profyang: 阿我突然看懂你那堆回圈在干嘛了 的确出来是对的 08/11 09:55
2F:推 ches51311: 跑出来了!! 谢谢^^ 现在在研究sprintf 08/11 15:24
3F:→ ches51311: 我想问 [str1,'a%d '] 是什麽意思@@? 08/11 15:26
4F:→ profyang: 把str1这个字串和' a%d'这个字串直接接在一起 08/11 16:30
5F:→ profyang: 其中%d你看到我後面有个ii 他就会把ii的值填到%d的位置 08/11 16:30
6F:→ profyang: %d是用整数形式 08/11 16:31
7F:→ profyang: 所以那个loop的意思就是把前一个str1後面再多接上aii 08/11 16:32
8F:嘘 ches51311: 喔喔懂了 跑出[]里的文字 然後%d是变数 由後面给 08/11 17:30
9F:→ ches51311: 悲剧 用成嘘了== 08/11 17:31
10F:推 ches51311: 推回来 08/11 17:46







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP