【发布时间】:2016-03-18 10:28:09
【问题描述】:
在我的简单代码中:
%%EQ1
syms x p;
matSol=[];
pvec=[]
for p=-5:5
eqn = x - p*(x^2);
S = solve(eqn, x);
%%STOCK S VALUES
vectSol=[0];
for j=1:size(S)
vectSol(j)=S(j);
end
pvec(p+6)=p;
matSol = [matSol; vectSol]; %% Error using vertcat Dimensions of matrices being concatenated are not consistent.
end
%PLOT
subplot(1,2,1); plot(pvec, matSol); xlabel('p'); ylabel('x');
title('Equation 1 : x - p x²');
hold on;
%%EQ2
%% same code works with 'eqn = p - x^2;'
我收到错误消息:Error using vertcat Dimensions of matrices being concatenated are not consistent.。在Matlab Answers 网站上,一个人解释说“当你将几个矩阵组合成一个大矩阵时,单个矩阵的维度必须匹配。在你的情况下,它们不匹配。这就是错误消息所说的。”
但我不擅长 Matlab,我从这门语言开始。具体我应该如何进行?这些小代码行适用于其他方程。
【问题讨论】:
-
只是一个注释来简化你的代码。内部循环只是将符号变量的列向量转换为双精度的行向量。这可以使用
vectSol=double(S).'来实现 -
对于您的函数
p - x^2,您是否意识到解决方案不是真实的?例如,vectSol = 0.0000 + 2.2361i 0.0000 - 2.2361i表示 p=-5。是否打算将它们绘制在 0 处?