Subscript indices must either be real positive integers or logicals.
    조회 수: 8 (최근 30일)
  
       이전 댓글 표시
    
Why do i get " Subscript indices must either be real positive integers or logicals." when i run my code and how can i fix it
%% problem parameters
P = 0.5*9.81;      % [load N]
L = 0.5;            % [Length M]
E = 69*10^6;
I = ((0.0032^3)*(0.0088))/12;
%%
x = (0:0.025:L);
v = zeros(length(x));
for i = 0.025:length(a) 
    a = 1/(E*I);
    b = 1/12;
    c = 1/16;
v(i) = a*((b*P*(i^3))-(1*c*P*(L^2)));
end
댓글 수: 0
답변 (2개)
  KALYAN ACHARJYA
      
      
 2019년 9월 17일
        
      편집: KALYAN ACHARJYA
      
      
 2019년 9월 17일
  
      The error is 
 v(i) 
%..^
In Matlab indexing,  the i value must be positive interger, like 1,2,3,,,,
v(1)>> Allow
v(0)>> Not Allow
v(0.25)>> Not Allow
v(-3)>> Not Allow
v(7)>> Allow
Hope you get the sufficients hints. In your case i starts from 0.25, hence v(0.25) Not allowed.
% Define a
% ????
%% problem parameters
P = 0.5*9.81;      % [load N]
L = 0.5;            % [Length M]
E = 69*10^6;
I = ((0.0032^3)*(0.0088))/12;
%%
x = (0:0.025:L);
v = zeros(length(x));
i=0.025:length(a) 
for j =1:length(i) 
    a = 1/(E*I);
    b = 1/12;
    c = 1/16;
v(j)= a*((b*P*(i(j)^3))-(1*c*P*(L^2)));
end
Without Loop:
% Define a
% ????
%% problem parameters
P = 0.5*9.81;      % [load N]
L = 0.5;            % [Length M]
E = 69*10^6;
I = ((0.0032^3)*(0.0088))/12;
%%
x = (0:0.025:L);
v = zeros(length(x));
i=0.025:length(a) 
a=1/(E*I);
b=1/12;
c=1/16;  
v=a*((b*P.*(i.^3))-(1*c*P*(L^2)));
Any issue let me know?
댓글 수: 5
  KALYAN ACHARJYA
      
      
 2019년 9월 17일
				
      편집: KALYAN ACHARJYA
      
      
 2019년 9월 17일
  
			If a=20, 
the what does the following means
i = 0.025:length(a)
it return i as a single element
i=0.025
Are you sure?  No Need of loop.The v becomes
v =
  -46.2192 
  If no, What exactly you are trying to do? 
  Image Analyst
      
      
 2019년 9월 17일
        The FAQ explains it pretty well:  Click here for the FAQ on that error
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


