Printing positive numbers backwards

2 次查看(过去 30 天)
Hi all,
I was just wondering if anyone could help me out with some code to go through a matrix of numbers and find the positive numbers and print only them (remove the negative numbers) in a new array but also print them in reverse order,
Thanks a lot!
  1 个评论
Stephen23
Stephen23 2019-7-2
编辑:Stephen23 2019-7-2
Please show us what you have tried so far.
You would have made significant progress on this by doing the introductory tutorials:

请先登录,再进行评论。

回答(1 个)

Rajani Mishra
Rajani Mishra 2019-7-16
Hi,
I understand that you want to extract positive numbers from matrix and store them in a new array and then traverse the new array in reverse order.
Refer this code:
[row,col] = size(mt)
arr = [];
for i = 1:row
for j = 1:col
if mt(i,j) > 0
arr(numel(arr) + 1) = mt(i,j);
end
end
end
for i = numel(arr):-1:1
disp(arr(i));
end
  1 个评论
Stephen23
Stephen23 2019-7-16
编辑:Stephen23 2019-7-16
Is there are reason why this answer does not use MATLAB's basic (and most useful) features, e.g. logical indexing, code vectorization, etc.?
Note that the output array should be preallocated:
It is much simpler to just use efficient logical indexing (this gives the same output):
B = mt.';
flipud(B(B>0))

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by