A function called small_elements that takes as input an array named X that is a matrix or a vector. Could you help me to understand the meaning?

1 Ansicht (letzte 30 Tage)
Write a function called small_elements that takes as input an array named X that is a matrix or a vector. The function identifies those elements of X that are smaller than the product of their two indexes. For example, if the element X(2,3) is 5, then that element would be identified because 5 is smaller than 2 * 3. The output of the function gives the indexes of such elements found in column-major order. It is a matrix with exactly two columns. The first column contains the row indexes, while the second column contains the corresponding column indexes. For example, the statement indexes = small_elements([1 1; 0 4; 6 5], will make indexes equal to [2 1; 1 2; 3 2]. If no such element exists, the function returns an empty array.
I'm not native english speaker so I can't understand very well. My question is..why the function returns a "3"?
Thank you for your help!

Antworten (2)

Walter Roberson
Walter Roberson am 28 Aug. 2017
For a 3 x 2 input named x, the logic is like
if x(1,1) < 1*1
disp([1, 1])
end
if x(1,2) < 1*2
disp([1, 2])
end
if x(2,1) < 2*1
disp([2, 1])
end
if x(2,2) < 2*2
disp([2, 2])
end
if x(3, 1) < 3*1
disp([3, 1])
end
if x(3, 2) < 3*2
disp([3, 2])
end

RAMAKANT SHAKYA
RAMAKANT SHAKYA am 7 Feb. 2019
function ind=small_elements(v)
[m,n]=size(v);
j=0;
ind=[];
for c=1:n
for r=1:m
if (r*c) > v(r,c)
j=j+1;
s=[r c];
ind=vertcat(ind,s); %adding matrix vertically
end
end
end
end
  1 Kommentar
Stephen23
Stephen23 am 7 Feb. 2019
Bearbeitet: Stephen23 am 7 Feb. 2019
Vectorized code is much simpler and most likely more efficient:
>> X = [1,1;0,4;6,5]
X =
1 1
0 4
6 5
>> S = size(X);
>> [R,C] = find(X<((1:S(1)).' .* (1:S(2))));
>> Z = [R,C]
Z =
2 1
1 2
3 2

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by