matrix problem not getting desired result.
1 次查看(过去 30 天)
显示 更早的评论
A=[0 0 0 0 0;0 1 1 0 0;0 1 0 0 0;0 1 1 0 0]; [rows, cols] = find(A == 1); n1=min(cols); n2=max(cols); m1=min(rows); m2=max(rows); for i=n1:n2 count=0; for j=m1:m2 if A(j,i)==1 count=count+1; end end count1=count; end
RESULT: count1=2
REQUIRED RESULT: count1=[3 2]
0 个评论
采纳的回答
Geert
2013-9-10
编辑:Geert
2013-9-10
Please try to format you question properly next time.
You want to know how many non-zero entries there are in each column I guess?
The easiest way of doing so is like this:
A=[0 0 0 0 0;0 1 1 0 0;0 1 0 0 0;0 1 1 0 0];
countPerColumn = sum(A==1,1);
% if you want to remove the zero entries you can add the following line:
countPerColumnRemovedZeros = countPerColumn;
countPerColumnRemovedZeros(countPerColumn == 0) = [];
If you want to adjust your own code (which is a bit sloppy in my opinion), you probably want something like this:
A=[0 0 0 0 0;0 1 1 0 0;0 1 0 0 0;0 1 1 0 0];
[rows, cols] = find(A == 1);
n1=min(cols); n2=max(cols);
m1=min(rows); m2=max(rows);
columns = n1:n2 ;
for ii=1:length(columns);
count=0;
for j=m1:m2
if A(j,columns(ii))==1
count=count+1;
end
end
count1(ii)=count;
end
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!