четыре раза в цикле - PullRequest
       1

четыре раза в цикле

0 голосов
/ 14 марта 2012
I have a function as below
    function m=narkisos(a,b,c,x,y,z,t,rho)
    m=a.*x+b.*y-z+c*exp(t-rho)
    end

Затем в скрипте я использую:

    clear all;
    a=1;b=2;c=3;
    m=zeros(3,4,5,6);
    t=[1 2 3]'; z=[2 3 4 5]';
    for i=1:length(t)
    for j=1:length(z)
    for s=1:5
    for r=1:6
    f=@(rho)narkisos(a,b,c,s,r,z(j),t(i),rho);
             m(i,j,s,r)=quad(f,0,t(i));
    end
    end
    end
    end

После этой части мне нужно снова использовать мои наркисы в других циклах (более 4), но для фиксированных индексов, например для s = 2, r = 3. Должен ли я определить другую функцию в каждом цикле или есть ли способ ее вызова? Я не люблю снова писать в каждом цикле наркисы, потому что уменьшить скорость кода.

for i=1:length(t)
    for j=1:length(z)

    **f=@(rho)narkisos(a,b,c,2,3,z(j),t(i),rho);**
             m(i,j,2,3)=quad(f,0,t(i));

    end
    end

Большое спасибо за любую помощь,

1 Ответ

1 голос
/ 14 марта 2012

Если я понимаю ваш вопрос, вы бы хотели запомнить вызовы вашей функции narkisos. Это не совсем просто, но я вижу, что Лорен по искусству Matlab освещал эту тему. Если вы еще не знакомы с блогом Лорен, это хорошее место для начала, я многому у нее научился за годы использования Matlab.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...