简单的MATLAB变量问题

简单的MATLAB变量问题,matlab,Matlab,请帮我写一个MATLAB程序,构造一个列矩阵b,这样 b1=3x1-3/4y0 b2=3x2 … bn-2=3xn-2 bn-1=3xn-1-3/4yn 其中x和y是变量。请注意,y仅出现在b的第一个和最后一个条目中 我的问题是我不知道变量在MATLAB中是如何工作的。我试过了 b=3*x 上面写着 ???未定义的函数或变量“x” 那么,我们如何创建变量而不是常量呢 谢谢 你从来没有说过你的问题 无论如何,只需先单独设置b的第一个条目。然后使用循环设置从2到n-2的下一个b值。然后分别设置b的最

请帮我写一个MATLAB程序,构造一个列矩阵b,这样

b1=3x1-3/4y0
b2=3x2

bn-2=3xn-2
bn-1=3xn-1-3/4yn

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

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

b=3*x

上面写着

???未定义的函数或变量“x”

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


谢谢

你从来没有说过你的问题

无论如何,只需先单独设置b的第一个条目。然后使用循环设置从2到n-2的下一个b值。然后分别设置b的最后一个条目

另一方面,如果x是一个向量,您可以简单地对循环部分进行向量化。

编辑: 从上面的评论中,您需要的是MATLAB,它允许您根据变量执行计算(无需为变量指定显式值)。下面是一个小例子:

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

z=
 
x^2 + 2*x + 1
有时需要使用
展开
来获得多项式的完整形式,因为默认行为是将其保持在最简单的形式,即
(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)

我想你最后一行的意思是
bn
xn
。。。无论如何,以下是您的操作方法:

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
是向量的长度。

好的,祝你好运!等等,你有问题吗?好的,让我们倒带一下。你想干什么?什么是
x
,什么是
y
以及如何获得
x
y
?它们是变量,因此,如果我调用b(2),例如,它将返回>3x2。这可能吗?是否可能在MATLAB中执行类似于
y=1+x
,然后y^2将给我
>1+2x+x^2
?都是x。是的,这是可能的(以有限的方式)。您需要使用,这不是基本MATLAB的一部分。你能检查一下你有没有工具箱吗?同时,我将发布一个关于如何使用它的简单示例。