Why does this loops produce a matrix?

조회 수: 1 (최근 30일)
Douglas Brenner
Douglas Brenner 2018년 10월 6일
댓글: Matt J 2018년 10월 6일
code
waves = [393.029, 414.386, 427.176, 516.748, 526.953, 640.000];
l = length(waves);
for i = 1:l
L = waves(i)
p = int32((L - minl)/.001) + 1
end
output
L =
3.930290000000000e+02
p =
342030 338030 337030 347030 344030 340030 338030
L =
4.143860000000000e+02
p =
363387 359387 358387 368387 365387 361387 359387
etc.
The L's are right but where does the answer for p come from? Why is it not a single value?
  댓글 수: 2
Matt J
Matt J 2018년 10월 6일
Because minl is not a scalar?
Matt J
Matt J 2018년 10월 6일
Douglas' comment moved here:
Sorry, no
minl =
378.157
L =
3.930290000000000e+02
p =
342030 338030 337030 347030 344030 340030 338030
L =
4.143860000000000e+02

댓글을 달려면 로그인하십시오.

채택된 답변

Matt J
Matt J 2018년 10월 6일
편집: Matt J 2018년 10월 6일
I suspect that minl is really a char array, like '378.157'. Try this instead
p(i) = int32((L(i) - str2double(minl))/.001) + 1;

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by