matlab - 简单的 MATLAB 变量问题

标签 matlab

请帮我编写一个 MATLAB 程序,构造一个列矩阵 b,使得

b1 = 3x1 - 3/4y0
b2 = 3x2
...
bn-2 = 3xn-2
bn-1 = 3xn-1 - 3/4yn

其中xy是变量。请注意,y 仅出现在 b 的第一个和最后一个条目中。

我的问题是我不知道变量在 MATLAB 中如何工作。我试过了

b = 3*x

它说

??? Undefined function or variable 'x'

那么,我们如何创建变量而不是常量?

谢谢!

最佳答案

编辑:

根据您上面的评论,您需要的是 MATLAB 的 symbolic toolbox ,它允许您根据变量执行计算(无需为其分配显式值)。这是一个小例子:

syms x %#declare x to be a symbolic variable
y=1+x;
z=expand(y^2)

z=
 
x^2 + 2*x + 1

您将需要使用expand有时要获取多项式的完整形式,因为默认行为是保持其最简单的形式,即 (1+x)^2 。这是求一般二次方程的根的另一个示例

syms a b c x
y=a*x^2+b*x+c;
solve(y)

ans =
 
 -(b + (b^2 - 4*a*c)^(1/2))/(2*a)
 -(b - (b^2 - 4*a*c)^(1/2))/(2*a)

我想你的意思是b<sub>n</sub>x<sub>n</sub>在最后一行...无论如何,您可以这样做:

b=3*x;
b([1,end])=b([1,end])-3/4*y([1,end])

您也可以在一行中完成

b=3*x-3/4*[y(1); zeros(n-2,1); y(end)];

哪里n是向量的长度。

关于matlab - 简单的 MATLAB 变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462250/

相关文章:

arrays - 对于普通的 MATLAB 数组,是否有类似 deal() 的东西?

c# - 如何将 matlab 中的矩阵转换为 C#/.NET 中的 double[,] 数组?

.net - EPPlus 计算方法在 Matlab 中不可见或不可访问

c - 用于从 matlab 创建可执行 .mexa64 文件的 Makefile

c++ - 使用特征库再现张量矩阵

matlab - 了解 Matlab 模式识别神经网络图

Matlab矩阵行对行乘法两个矩阵维度不一致

matlab - 如何在不使用预定义函数的情况下绘制声音文件的频谱图?

matlab - 将矩阵的所有 1 放入第 1 列,将 2 放入第 2 列等,将 NaN 放入空单元格

git - 不对 .m matlab 文件进行 git CRLF 转换?