Indexing cannot yield multiple results matlab

i have my function like this;
when i run the the program it gives; Indexing cannot yield multiple results.Error in [Edump,Eb,Ech] = charge(Phkt,Pw,Pp,Ebmax,uinv,Pl,t,PchE,dump,Eb,Ech)
if true
% code
end
function [Edump,Eb,Ech] = charge(Phkt,Pw,Pp,Ebmax,uinv,Pl,t,PchE,dump,Eb,Ech)
global Phkt Pw Pp Eb Ebmax uinv Pl t Ech
% CHARGE
Pch(t)=( Pp(t)+Pw(t)+Phkt(t))-(Pl(t)/uinv);
Ech(t)=Pch(t);%*1;%one hour iteration time
if Ech(t)<=Ebmax-Eb(t)
Eb(t)=Eb(t-1)+Ech(t);
if Eb(t)>Ebmax
Eb(t)=Ebmax;
Edump(t)=Ech(t)-(Ebmax-Eb(t));
else
Edump(t)=0;
end
return
else
Eb(t)=Ebmax;
Edump(t)=Ech(t)-(Ebmax-Eb(t));
return
end
end
[Edump,Eb,Ech] = charge(Pp,Pw,Phkt,Eb,Ebmax,uinv,Pl,t,Edump,Ech);

댓글 수: 2

Star Strider
Star Strider 2016년 12월 24일
What arguments (and their sizes and classes) are you passing to your ‘charge’ function?
I don't get you.... Can you please explain what you are trying to say? I'm not that vast in the use of MATLAB

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

 채택된 답변

Adam
Adam 2017년 1월 5일

0 개 추천

Why on earth are you declaring a bunch of global variables of the same names as many that you are passing into your function? At best this will do nothing, at worst it will have all kinds of unwanted effects that could cause a load of obscure bugs.
The error you are getting though suggests that when you call
[Edump,Eb,Ech] = charge(Phkt,Pw,Pp,Ebmax,uinv,Pl,t,PchE,dump,Eb,Ech)
Matlab thinks 'charge' is a variable that it is indexing into rather than a function that it is calling. So first thing to check is where you call it do you have a variable called 'charge' also? If so then this is the problem (or at least the problem causing the error you give).

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2016년 12월 24일

답변:

2017년 1월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by