Why is this generating a numerical array and not an array of cells?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Nicholas Kavouris
el 17 de Mzo. de 2022
Comentada: Image Analyst
el 17 de Mzo. de 2022
Why does the following loop generate slope as the result of diff() function? Instead or a cell array with the desired text?
for i=1:length(Temp_F)
if diff(Temp_F(i))>0
slope(i)='Rising'
elseif diff(Temp_F(i))<0
slope(i)='Falling'
end
end
1 comentario
Stephen23
el 17 de Mzo. de 2022
diff(Temp_F(i))
What do you expect the difference of one number to be?
Respuesta aceptada
KSSV
el 17 de Mzo. de 2022
REad about the function diff. It needs an array with atleast 1x2 dimensions. You are giving only one number as input. So diff gives you an empty matrix.
diff(1)
diff(rand)
diff(rand(1,2))
diff(rand(2,1))
So you have to modify your code like below:
diff_Temp_F = diff(Temp_F) ; % I assume Temp_F is a vector
N = length(Tmp_F) ;
slope = cell(N,1) ;
for i=1:length(Temp_F)-1
if diff_Temp_F(i) > 0
slope{i}='Rising'
elseif diff_Temp_F(i) < 0
slope{i}='Falling'
end
end
1 comentario
Image Analyst
el 17 de Mzo. de 2022
I believe you could also use strings instead of character arrays and then use parentheses instead of braces
slope(i) = "Rising"; % Use double quotes instead of single quotes.
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!