能否优化这两句程序
编程时碰到一个问题,D1和De是全局变量,下面这两句是写在一个函数sub_pinpian里的语句,该函数被主程序main调用多次,最终得到De供以后的程序用。我想弄明白两个问题:一、能否不用循环,充分发挥matlab的数组强大优势,这样可以节省时间,提高效率
二、能否不用定义全局变量,而是同过变量传递达到目的,因为,听大家说定义全局变量很容易出错。
%主程序main
N1=bitshift(1,15);
global D1 De;
D1=zeros(1,N1);De=zeros(1,N1);
....
for u=0:19
De=sub_pinpian(xa,pianyi)
end
....
....
%子函数sub_pinpian
functionDe=sub_pinpian(xa,pianyi)
global D1 De;
%省略一部分代码
...
...
for u=7:-1:0
for p=0:127
D1(p+1+(7-u)*16)=D1(p+1+(7-u)*16)+abs(DA1(u*256+2*p+1))+abs(DA1(u*256+2*p+2));
end
end
%De=...De通过D1的一系列运算得到
...
...
希望师兄师姐师弟师妹们能帮助我。谢谢啦 function=sub_pinpian(xa,pianyi,D1,De)
不知道子函数这样定义可不可以解决LZ第二个问题... for p=0:127
D1(p+1+(7-u)*16)=D1(p+1+(7-u)*16)+abs(DA1(u*256+2*p+1))+abs(DA1(u*256+2*p+2));
end
应该可以改成
D1((1:128)+7-u)=…… 谢谢波波球和friendchj:@) it's very nice of you
我不知道形参和返回值可以用同一变量,:@$ ,学习了,谢谢你!
关于循环的那两句,friendchj给的建议我今天试试。
页:
[1]