Я новичок в Matlab, и для значений a, l и w мне нужно найти все значения для l в наборе данных и соответствующие значения w.
a=10;
l=(0:10)
w=(0:10)
for l,d
if a == l.*w
disp(l)
disp(w)
end
end
Я новичок в Matlab, и для значений a, l и w мне нужно найти все значения для l в наборе данных и соответствующие значения w.
a=10;
l=(0:10)
w=(0:10)
for l,d
if a == l.*w
disp(l)
disp(w)
end
end
Не уверен, что вы хотите сделать, но я думаю, что ваш код можно было бы поставить следующим образом:
a = 10;
l = 0:a; %// actually, it would suffice to check numbers up to floor(a/2)
ind = rem(a,l)==0; %// logical index that tells if remainder is zero or not
disp([l(ind); a./l(ind)])
Результат:
1 2 5 10
10 5 2 1
Вы можете сделать это более непосредственно с помощью функции Matlab factor
:
f = factor(a);
disp([f; a./f])
Результат:
2 5
5 2
factor
кажется подходящей. Если есть интерес только к ограниченному набору значений, вывод может быть впоследствии уменьшен. Проверьте help union
.
- person Dennis Jaheruddin; 14.05.2014