请帮助我将C代码转换为MATLAB代码,用于使用平衡算法将太阳能电池板的部分着色

21次浏览(过去30天)
Dilshana O.
Dilshana O. Alrededor de 11 Horas前
编辑: 詹姆斯图马 Alrededor de 7 Horas前
Hei请将此C代码转换为Matlab代码
#include
void main(){
浮子P1,P2,P3;
浮子三角洲= 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;
}
别的
{
delta = delta / 2;
}
}
别的
{
if(p3> p2)
{
d = d +δ;
delta = delta * 2;
}
else if (p2 = p3)
{
d = d +δ;
delta = delta * 2;
}
别的
{
delta = delta / 2;
}
}
}
否则if(p1 == p2)
{
if(p2> p3)
{
if(p2> p3)
{
d = d-delta;
delta = delta / 2;
}
否则if(p2
{
d = d-delta;
delta = delta * 2;
}
别的
{
delta = delta * 2;
}
}
}
}

接受答案

图像分析师
图像分析师 Alrededor de 10 Horas前
你能行的。
  1. 将}(右括号)替换为end。
  2. 摆脱{(打开括号)。
  3. 替换!=〜=。
  4. 摆脱浮动。
  5. 用“elseif”(没有空格)替换“else if”
不确定在这里发生了什么:
scanf(“%f%f%f”p1, p2, p3);
来吧,它是 不是 超出你的能力。试一试。这就是你学习的方式。

更多答案(1)

詹姆斯图马
詹姆斯图马 Alrededor de 10 Horas前
编辑:詹姆斯图马 Alrededor de 7 Horas前
除了什么 @image分析师 已编写,我建议将其转换为p1,p2,p3作为输入参数和d,delta作为输出参数的函数。
此外,C代码似乎有错误。这些线条:
否则if.(p2 = p3)
应该从上下文中可能是这样的:
否则if.(p2 == p3)
P2 = P3表达式是C中的分配,然后测试非零,而不是平等测试,因此每当P3非零时,此表达式将是真的。您应该仔细检查您的算法以确认这是一个错误。平等测试的MATLAB代码也应该使用==运算符。

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

被某某人翻译