Форумы-->Форум для внеигровых тем-->
Автор | Нужна помощь по 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) |
---|
К списку тем
|