【问题标题】:norm function in for loop in MatlabMatlab中for循环中的范数函数
【发布时间】:2017-07-26 08:06:34
【问题描述】:

有没有什么方法可以在没有for循环的情况下在Matlab中编写以下代码?

for g=1:nn
    u(g)=uu(g)/norm(uu(g),vv(g));
    v(g)=vv(g)/norm(uu(g),vv(g));
end

【问题讨论】:

    标签: matlab for-loop optimization


    【解决方案1】:

    如果是向量,可以分点:

     mat = [uu.' vv.'];
     norms = arrayfun(@(idx)norm(mat(idx,:)),1:length(uu)); % like this post https://www.mathworks.com/matlabcentral/newsreader/view_thread/172116
     %or instead norms = sqrt(uu.^2 + vv.^2);
     u = uu ./ norms;
     v = vv ./ norms;
    

    【讨论】:

    • 什么是晶圆厂?出现错误:“double”类型的输入参数的未定义函数“fabs”。
    • uu=[1,2,3,4]; vv=[2,4,6,8]; n = abs(uu - vv); u = uu ./ n; v = vv ./ n;
    • 如果上面的代码运行,输出是 u=[2,2,2,2] 和 v=[1,1,1,1] 这是不正确的
    猜你喜欢
    • 1970-01-01
    • 2011-08-05
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    相关资源
    最近更新 更多