Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
21:33
4035
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->

АвторНужна помощь по Matlab
Нужна небольшая помощь по матлабу. Вознагражу.

Суть в чем. Дана квадратная матрица, состоящая из нулей и единиц, нужно вывести номер строки и столбца, которых нет ни одной единицы.

global m
global C
C=get(handles.mat,'Data')
[m,n]=size(C); %определение количества строк и столбцов матрицы К
[M,N]=find(C); %определение индексов строк и столбцов ненулевых элементов


%Блок для определения строк, в которых нет единиц:
J=[]; I=[];
for i=1:m

if sum(M==i)==0
I=[I,i];
I=num2str(I)
set(handles.rzl1,'String',I)
I=str2num(I)

else
if sum(M==i)~=0
set(handles.rzl1,'String','Таких строк нет')

end
end

end


%Блок для определения столбцов, в которых нет единиц:
for j=1:n

if sum(N==j)==0
J=[J,j];
J=num2str(J)
set(handles.rzl2,'String',J)
J=str2num(J)

else
if sum(N==j)~=0

set(handles.rzl2,'String','Таких столбцов нет')

end
end

end

У меня упорно не видит почему-то второй столбец и вторую строку, если разбирать на примере матрицы 3х3. Помогите найти ошибку.
Армии всегда нужны герои.

Ты понял.
Циклы и всякие if в Matlab - моветон и в исключительных случаях. В Matlab стоит оперировать матрицами и векторами сразу.

X - наша матрица из 0 и 1

Y=find(sum(X,1)==0) - номера столбцов без единиц
Z=find(sum(X,2)==0) - номера строк без единиц.
тема закрыта by HealingPotion (2016-05-15 20:24:24)
К списку тем
2007-2025, онлайн игры HeroesWM