How to set up a program that introduces a square matrix of numbers from the fourth line? The program should be replaced first positive element in each row 1 and outputting the resulting matrix. Go somewhere and ... Please help!

2 commentaires

James Tursa
James Tursa le 16 Sep 2015
Please provide a short example of inputs and desired outputs.
Mario Marinov
Mario Marinov le 16 Sep 2015
Let matrix is >> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
The program to replace the first numbers in each row, if they are positive, with the number 1. Then put the newly matrix :)

Connectez-vous pour commenter.

 Réponse acceptée

Star Strider
Star Strider le 16 Sep 2015

0 votes

I’m not certain what you want. See if this works:
A=[1 2 3;4 5 6;7 8 9];
A(A(1,:)>0) = 1;
It tests the first column in every row, and if it is positive, replaces it with 1.

2 commentaires

Mario Marinov
Mario Marinov le 16 Sep 2015
Modifié(e) : Star Strider le 16 Sep 2015
This works! Thanks! My record is wrong:
>> A(1,:)>0=1
A(1,:)>0=1
|
Error: The expression to the left of the equals sign is not a valid target for an assignment.
Star Strider
Star Strider le 16 Sep 2015
You have to put parentheses in the subscript references:
A(A(1,:)>0) = 1;

Connectez-vous pour commenter.

Plus de réponses (1)

Mario Marinov
Mario Marinov le 16 Sep 2015

0 votes

Excuse me, but if the matrix is this: >> A = [-1 2 3;4 -5 6;7 8 -9]
A =
-1 2 3
4 -5 6
7 8 -9
How to replace the first positive number in each row, and not in the first column with 1?

3 commentaires

Star Strider
Star Strider le 16 Sep 2015
With those conditions, the code requires a loop and the find function:
A = [-1 2 3;4 -5 6;7 8 -9];
for k1 = 1:size(A,1)
A(k1,find(A(k1,:)>0, 1, 'first')) = 1;
end
Mario Marinov
Mario Marinov le 16 Sep 2015
Working again! Thanks!
Star Strider
Star Strider le 16 Sep 2015
My pleasure!

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by