Effacer les filtres
Effacer les filtres

Subscript indices must either be real positive integers or logicals.

1 vue (au cours des 30 derniers jours)
shahin hashemi
shahin hashemi le 14 Jan 2019
Commenté : shahin hashemi le 14 Jan 2019
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 commentaires
Stephen23
Stephen23 le 14 Jan 2019
"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 le 14 Jan 2019
thank you very much
i use round and got answer
u cooment so i cant accept your answer

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 14 Jan 2019
Modifié(e) : Stephen23 le 14 Jan 2019
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)

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Produits


Version

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by