Я написал функцию (назовите ее F), которая работает «хорошо» (то есть дает мне результат, который я хочу), и внутри него я вызываю ту же самую функцию (назовите ее G_i) четыре раза (ниже одного из них), за исключением того, что каждый раз я изменяю способ индексирования своего цикла, чтобы иметь возможность охватить все пары коэффициентов в матрице. Я думаю, что этот метод плох, и я хотел бы знать, есть ли у вас идеи его улучшить ...Умный способ индексирования петель в Matlab
Я делаю это, чтобы проверить последовательные условия на коэффициенты матрицы (иногда в порядке (1,2) то (1,3) тогда (2,3). Я продолжаю проверять разные порядки).
function G_1=countbackward(a,,,)
n=a;
G_1=[];
N=1;
while N>0
for l=n:-1:1
for m=1:l
if some condition on generated matrices
...
elseif another condition on generated matrices
...
else
N=0 ;
end
G_1=[G_1,g_0] ;
end
end
конец
(при п = 3 я получаю с выше записей:. (3,1), (3,2), (2,1))
Другие индексации Я использую с точно таким же телом выше функции:
for l=n:-1:1
for m=(l-1):-1:1
То же самое для следующего:
for l=1:n
for m=l+1:n
То же самое для следующего:
for l=1:n
for m=n:-1:l
Спасибо за вашу помощь.
ПРИЛОЖЕНИЕ:
Ниже приведен упрощенный пример моего кода:
function H=count2backward(a,g_0,s,e)
%matrix g_0 is the "start" matrix
%matrix g_K is the "end" matrix
n=a; % number of nodes in an undirected graph or size A
s=mypayoff(n,g_0);
e=mypayoff(n,g_K);
H=[];
N=1;
while N>0
for l=1:n
for m=n:-1:l
if l~=m && g_0(l,m)==0 && s(l)<=e(l) && s(m)<=e(m) && (s(l)<e(l) || s(m)<e(m)) ;
g_0(l,m)=g_0(l,m)+1 ;
g_0(m,l)=g_0(m,l)+1 ;
g_0 ;
s=mypayoff(n,g_0);
elseif l~=m && g_0(l,m)==1 && (s(l)<e(l) || s(m)<e(m)) ;
g_0(l,m)=g_0(l,m)-1 ;
g_0(m,l)=g_0(m,l)-1 ;
g_0 ;
s=mypayoff(n,g_0);
else
N=0;
end
H=[H,g_0] ;
end
end
конец
http://stackoverflow.com/help/mcve –
спасибо, я могу дать полный код, но даже в моих условиях я называю другие функции, которые я написал .. @transversalitycondition – Sha
точка, чтобы попытаться построить простой пример, иллюстрирующий абстрактный пункт, чтобы ваш вопрос был полезен для других участников. чем больше усилий вы вкладываете в свой вопрос, тем больше усилий вы можете ожидать в ответ :) –