please help me to convert c code into matlab code for partial shading of solar panel using equilibration algorithm
Afficher commentaires plus anciens
hei please convert this c code into matlab code
#include<stdio.h>
void main(){
float p1,p2,p3;
float delta=1;
scanf("%f%f%f",&p1,&p2,&p3);
float d = p2;
if(p1 != p2)
{
if(p1>p2)
{
if(p2>p3)
{
d=d-delta;
delta=delta*2;
}
else if(p2=p3)
{
d=d-delta;
delta=delta*2;
}
else
{
delta=delta/2;
}
}
else
{
if(p3>p2)
{
d=d+delta;
delta=delta*2;
}
else if(p2=p3)
{
d=d+delta;
delta=delta*2;
}
else
{
delta=delta/2;
}
}
}
else if(p1==p2)
{
if(p2>p3)
{
if(p2>p3)
{
d=d-delta;
delta=delta/2;
}
else if(p2<p3)
{
d=d-delta;
delta=delta*2;
}
else
{
delta=delta*2;
}
}
}
}
Réponse acceptée
Plus de réponses (1)
James Tursa
le 7 Juin 2021
Modifié(e) : James Tursa
le 7 Juin 2021
In addition to what @Image Analyst has written, I would advise turning this into a function with p1, p2, p3 as input arguments and d, delta as output arguments.
Also, the C code appears to have bugs. These lines:
else if(p2=p3)
should from context probably be this instead:
else if(p2==p3)
The p2=p3 expression is an assignment in C that is then tested for non-zero, not an equality test, so this expression will be true whenever p3 is non-zero. You should double check your algorithm to confirm this is a bug. The MATLAB code for an equality test should use the == operator also.
Catégories
En savoir plus sur Axis Labels dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!