Вопрос про матрицы
18.09.2020
Имеется произвольный массив а и массив а_max, который состоит из максимальных элементов массива а (то есть массив одномерный), требуется построить третий массив y по условию, если a(i,j)=a_max, то y(i,j) = 1, а если a(i,j) не равно a_max, то y(i,j) =0.
Приведу пример задачи:
a(10 12;20 16); a_max(12;20)
y(0 1;1 0)
Вот собственный код: ( попытался сделать через поэлементное деление, так как не знаю про поэлементное приравнивание, но выходят в массиве y только нули почему-то)
clc
clear
m=input('n=')
n=input('m=')
a_max=max(a,[ ],2)
for i=1:m
for j=1:n
if a(i,j)./a_max==1
y(i,j)=1
else y(i,j)=0
end
end
end
Лучший ответ
У вас получился массив из двух максимальных элементов, а вы пытаетесь поэлементно разделить на него один элемент. Да и зачем делить, а потом сравнивать результат с единицей, когда можно сразу спавнивать элемент с максимальным значеникм?
Лучше всего, конечно, сравнение производить сразу для всех элементов.
n=size(a,2);
a_max=max(a,[],2);
A_max=repmat(a_max,1,n);
y=double(a==A_max);
Ответы
У вас получился массив из двух максимальных элементов, а вы пытаетесь поэлементно разделить на него один элемент. Да и зачем делить, а потом сравнивать результат с единицей, когда можно сразу спавнивать элемент с максимальным значеникм?
Лучше всего, конечно, сравнение производить сразу для всех элементов.
n=size(a,2);
a_max=max(a,[],2);
A_max=repmat(a_max,1,n);
y=double(a==A_max);