【问题标题】:How to ignore a function within for loop after first iteration in MATLAB如何在 MATLAB 中第一次迭代后忽略 for 循环中的函数
【发布时间】:2015-12-04 16:30:33
【问题描述】:

我在 for 循环中有一个函数。在这个函数中,我加载一个文件并对数据点进行插值,如下所示。这个过程非常昂贵。我可以在第一次迭代后跳过这个过程,只使用 (p1, p2) 的 "F" 函数 (CAR = F(p1, p2)) 作为输入值吗?

function CAR = AcAd (p1, p2)
num = xlsread('Book.xlsx');
x = num(:, 1); y = num(:, 2); z = num(:, 3);
t1 = 0.05:0.02:2; t2 = 0.05:0.02:0.5;
F = scatteredInterpolant(x, y, z);
[qx, qy] = meshgrid(t1, t2); 
qz = F(qx, qy);

CAR = F(p1, p2);

【问题讨论】:

    标签: matlab loops for-loop


    【解决方案1】:

    有几种方法可以解决这个问题:

    1. 要求用户传入数据:function CAR = AcAd (p1, p2, num),并且只在函数外加载一次。
    2. 有一个global 来存储数据:

    function CAR = AcAd (p1, p2)
    if (~exist('num'))
        num = xlsread('Book.xlsx');
    end
    

    这显然只适用于num,但可以很容易地扩展为以相同的方式获得F。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-24
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多