f21 = @(x,y,z) ((((((x+y+z).^2))/3-(x.*y+y.*z+z.*x))).^(3/2)-b1.*(x.*y.*z-(x+y+z).*(x.*y+y.*z+z.*x)./3+(2.*(x+y+z).^3)./27))-yield; f22 = @(x,y,z) ((((((x+y+z).^2))/3-(x.*y+y.*z+z.*x))).^(3/2)-b2.*(x.*y.*z-(x+y+z).*(x.*y+y.*z+z.*x)./3+(2.*(x+y+z).^3)./27))-yield; if (x.*y.*z-(x+y+z).*(x.*y+y.*z+z.*x)./3+(2.*(x+y+z).^3)./27) >= 0 f2 = f21; else f2 = f22; end 这段代码不对,运行提示矩阵维度必须一致。 出错 New_Cazacu_Barlat_Of_Third_Effect_in_pai_space_curve_3D_3 (line 26) if (x.*y.*z-(x+y+z).*(x.*y+y.*z+z.*x)./3+(2.*(x+y+z).^3)./27) >= 0
时间: 2024-03-27 18:42:03 浏览: 150
C_DEMO_FT62F21X_fmd_FT62F21X_www.62ft.com_DEMO_62f21_
根据代码,出错的原因是在条件语句中,左右两边的矩阵维度不一致。具体来说,是因为在计算 `(x.*y.*z-(x+y+z).*(x.*y+y.*z+z.*x)./3+(2.*(x+y+z).^3)./27)` 时,可能会得到一个矩阵,而条件语句中的 `0` 是一个标量,两者无法比较大小。
解决这个问题的方法是将条件语句中的 `0` 改为一个与上述计算结果维度一致的矩阵,比如可以将 `0` 改为 `zeros(size(x))`。这样做可以确保两边的维度一致,从而避免出现维度不一致的错误。
阅读全文