MATLAB 板


LINE

※ 引述《DIDIMIN ( )》之铭言: : 已知有一行向量 X = [a, b, c, d]' : 想要生成 : Y = [ a, 0, 0, 0 ] : [ b, a, 0, 0 ] : [ c, b, a, 0 ] : [ d, c, b, a ] 4x4 矩阵 : 目前的写法 : tic : X = [1:n]'; : i = 1; Y = zeros(numel(X),numel(X)); : while i <= numel(X) : Y(:,i) = [zeros(i-1,1);X(1:numel(X)+1-i,1)]; : i = i+1; : end : toc : 当 n 为 1000 时,计算时间为 0.008490 秒 : 当 n 为 5000 时,计算时间为 0.147806 秒 : 当 n 为 10000 时,计算时间为 0.462627 秒 : 当 n 为 20000 时,计算时间为 1.777377 秒 : 电脑配备:i7-2600 3.4GHz、RAM 8G、Windows 8、Matlab R2013a : 请问各位大大有没有更有效率的写法? 法一:去除你原本code中多余的运算 (1)numel多余 (2)i=i+1多余(但影响极小) (3)没必要重设整个column X = [1:n]'; Y = eye(n); for i = 2:n Y(i:n, i) = i:n; end p.s. 在我的电脑中n=1000跑1000次平均时间 原本: 0.06610 sec 加速: 0.02339 sec 你的电脑可真快呢!!! 法二:用mex来改写 难度高,debug麻烦,不太建议 法三:重新检视你的演算法 产生这个矩阵很没意义, 且用n^2的储存空间来表示n个资讯非常的不经济 -- 哀愁犹如雪花梢然飘落, 白雪厚积, 终究成了孤独的小结晶, 谁能融化我冰冻已久的孤寂? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.67.52.211
1F:→ Feis:我可以请教一下为什麽内建的 toeplitz() 慢很多 Q_Q 09/07 17:11
function t = toeplitz(c,r) [step 0] 初始化 r = r(:); % force column structure p = length(r); m = length(c); [step 1] 产生出待放元素表 x = [r(p:-1:2) ; c(:)]; % build vector of user data [step 2] 产生出拿取待放元素时要用的idx xclass = class(x); cidx = (zeros(xclass):m-1)'; ridx = p:-1:ones(xclass); t = cidx(:,ones(p,1)) + ridx(ones(m,1),:); % Toeplitz subscripts [step 3] 把元素从从元素表中拿出来 t(:) = x(t); % actual data step 2 中 (1) 用 x(:, [1 1 1 ... l]) 的方式来复制 vector 比较慢 (2) 记忆体需产生两个大小跟结果相同的矩阵後再做加总的动作 记忆体需要做2次额外的配置与释放,而且还要做 O(N^2) 的运算 step 3 可用我上面的方式来避掉 ※ 编辑: mp19990920 来自: 111.67.52.211 (09/07 18:41) 若你对效能有疑虑的话, 可以使用 matlab 内建的工具 "Profiler", 快速按钮就放在 help 的左边, 超超超好用的!!! ※ 编辑: mp19990920 来自: 111.67.52.211 (09/07 18:45) ※ 编辑: mp19990920 来自: 111.67.52.211 (09/07 18:47)
2F:推 DIDIMIN:谢谢你 09/07 19:29
3F:推 Feis:谢谢! 这蛮有趣的. 另外请教一下, Matlab 内建的比较慢是有 09/07 23:22
4F:→ Feis:什麽语法特性还是说他内建的比较泛用? 谢谢 : ) 09/07 23:22
5F:→ Feis:抱歉, 我不是很懂 Matlab 的哲学. 我会自己去查一下 09/07 23:23
6F:推 bridge23:= [1:n]'; 09/09 09:17







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