Subscript indices must either be real positive integers or logicals.

조회 수: 3 (최근 30일)
dear all
i have code like below
clc
clear all
for b=1:0.1:20
M((b*10)-9,:)=[1 1 1 ]
end
but at b=2.4 i got this error :
M =
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
Subscript indices must either be real positive integers
or logicals.
Error in Untitled2 (line 4)
M((b*10)-9,:)=[1 1 1 ]
i really appreciated if some can help me y i get this error and what the solotions ?
  댓글 수: 3
Stephen23
Stephen23 2019년 1월 14일
"i really appreciated if some can help me y i get this error..."
"...and what the solotions ?"
Do not do calculations on floating point numbers and expect to get exact integer outputs. Write your code knowing that calculations on floating point numbers accumulate floating point error.
shahin hashemi
shahin hashemi 2019년 1월 14일
thank you very much
i use round and got answer
u cooment so i cant accept your answer

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

채택된 답변

Stephen23
Stephen23 2019년 1월 14일
편집: Stephen23 2019년 1월 14일
Better to iterate over integer indices rather than fractional values:
V = 1:0.1:20;
N = numel(V);
M = nan(N,3);
for k = 1:N
M(k,:) = [1,1,1];
end
Even better:
M = repmat([1,1,1],N,1)
Best:
M = ones(N,3)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

제품


릴리스

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by