Why is this generating a numerical array and not an array of cells?
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
KSSV
2022-3-17
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 个评论
Image Analyst
2022-3-17
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!