Find the sum of the non perimeter elements of a matrix using a for loop
2 次查看(过去 30 天)
显示 更早的评论
I have this matrix
B=[-3 4 7;9 11 -13;-17 19 -23;-29 31 37;39 41 47]
and I need to find the sum of the non perimeter elements using a for loop. I can find the sum of a single column or row or of the whole matrix, but I don't know how to write a loop to only sum the 3 non perimeter numbers. Any help is appreciated, thank you.
0 个评论
采纳的回答
Image Analyst
2016-4-24
编辑:Image Analyst
2016-4-24
Try it this way:
B=[-3 4 7;9 11 -13;-17 19 -23;-29 31 37;39 41 47]
[rows, columns] = size(B)
theSum = 0;
for col = 2 : columns - 1
for row = 2 : rows-1
theSum = theSum + B(row, col);
end
end
fprintf('The sum = %f\n', theSum);
2 个评论
Image Analyst
2016-4-24
Hopefully you're not just asking me to do all your homework for you. Here is one way:
B=[-3 4 7;9 11 -13;-17 19 -23;-29 31 37;39 41 47]
[rows, columns] = size(B)
theSum = 0;
for col = 1 : columns
for row = 1 : rows
if row == 1 || row == rows || col == 1 || col == columns
% It's on the perimeter of the array.
theSum = theSum + B(row, col)
end
end
end
fprintf('The sum = %f\n', theSum);
更多回答(2 个)
Azzi Abdelmalek
2016-4-24
编辑:Azzi Abdelmalek
2016-4-24
A=B
A(:,[1 end])=0
A([1 end],:)=0
out=sum(A(:))
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multidimensional Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!