for loop to scan matrix and output a new matrix
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I would like to take an e.g. 8x1 matrix such as the one below:
0
1
0
1
1
1
0
1
and I would like to scan through it and generate a new matrix of the same dimensions, following the rules below.
- Make the first value of the new matrix the same as the first value of the original matrix.
- Then from here on:
- If the value is 0, add a 0 to the new matrix.
- If the value is 1 AND the value above it is 1, assign a 0 to the new matrix.
- However, if the value is 1 but the value above it is 0, then assign a 1 to the new matrix.
So, the resulting matrix should be:
0
1
0
1
0
0
0
1
Any help, with clear notation of what each part of the for loop is doing, would be much appreciated! Many thanks.
2 Commenti
Risposte (1)
Walter Roberson
il 19 Ago 2022
matrix = [0; 1; 0; 0; 1; 1; 1; 1; 0; 0; 1; 1; 0];
matrix_new = [matrix(1); matrix(2:end) & ~matrix(1:end-1)]
5 Commenti
Walter Roberson
il 19 Ago 2022
inf and -inf are not a problem, but nan is a problem.
~[-inf inf]
~nan
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!