如何学习这些matlab语句?

时间:2012-08-08 06:12:11

标签: matlab equation-solving

我已被告知我们需要知道哪些陈述,以及我对他们所做的事情的回答。如果我在某个地方弄错了,请纠正我,请告诉我如何学习我可能需要的更高级的陈述,例如: .*.^用于元素操作,我还没有学习。

%  Mini-Matlab:
%  =============
% 
%  Find out what these statements do!
%  Then you can write a Matlab-program.

% "%" starts a Matlab comment

x=[2 3]

上面就像一个数组,一个在语句后驻留在内存中的向量。

y=[4 5]'

这是一个列向量。

A=[x; y']

分号分隔矩阵的行。

B=sin(A)

这就像一个常规的数学函数。

z=x.*y'

这也就像经典数学/ CS中的一个功能。

c=A\y

这很重要并且解决了方程式系统但是哪个?最初的等式是如何陈述的?以上是否解决了Ay = c?请明确说明。

a='Hej'

以上只是一个变量,就像任何其他计算机语言一样。

A(2)= 'A'

上面将向量a的第二个元素设置为字符串'a'。

v=3:2:9

以上构建了步骤2中从3到9的向量。

w=5:3:15

以上构建了步骤3中5到15的载体。

t=0:0.05:10;

t变为介于0和10之间的向量,增量为0.05。

f=t.*exp(2*t);

这就像常规函数定义一样。

plot(t,f)

这绘制了y轴上的函数和x轴上的t。

title('Fin kurva');

这只是设置图表的标题。

g=3*t.*sin(t);

这是一个更复杂的函数定义,仍然很容易理解它的作用。

k=cos(t+2)+sin(t.^2);

另一个简单的函数定义。

help XXX % XXX=sin, cos, plot, disp

访问在线帮助系统。

if CONDITION
  STATEMENTS...
end;

言自明的。

if CONDITION
  STATEMENTS...
else
  STATEMENTS...
end;

也不言自明。

for VARIABLE = VECTOR
  SATSER...
end;

常规for循环

while VILLKOR
  SATSER...
end;

如果你编程的话,很容易理解。

所以我认为我理解了大部分陈述但是从这个列表中可以看出,与研究最相关的是方程求解器c = A \ y,我需要练习如何使用。

2 个答案:

答案 0 :(得分:1)

  

x=[2 3]

     

上面就像一个数组,一个在语句后驻留在内存中的向量。

[ ... ]创建一个包含在括号内的所有内容的矩阵。矩阵可以是标量(1x1),行向量(1xN),列向量(Nx1)或完整的2d矩阵(MxN)。 Matlab也知道更高维的矩阵,但是你不能使用括号表示法输入它们(然而输入更高维矩阵的切片(它们本身是2d))。

  

y=[4 5]'

     

这是一个列向量。

[4 5]创建1x2向量,'transpose operator,将其转换为2x1向量。

  

A=[x; y']

     

分号分隔矩阵的行。

确实,因为x还是1x2y'A2x2的第一行x和第二行{ {1}}。

  

y'

     

这就像一个常规的数学函数。

sinB=sin(A)返回Y = sin(X)元素的循环正弦值。因此,您可以输入标量,矢量,甚至矩阵。输出与输入大小相同。

  

X

     

这也就像经典数学/ CS中的一个功能。

z=x.*y'element-wise multiplication operator.*x的大小相同很重要,否则会出错! y的每个元素与x的对应元素相乘,在这种情况下,结果将为:y

  

[2*4 3*5]

     

这很重要并且解决了方程式系统但是哪个?最初的等式是如何陈述的?以上是否解决了Ay = c?请明确说明。

Documentation:反斜杠或矩阵左分区。如果A是方阵,则A \ B与inv(A)* B大致相同,除非它以不同的方式计算。

所以它等于c=A\y,因此它解决了c=inv(A)*y。如果你不是一直使用它们,那些斜线和反斜杠总是很棘手。

  

A*c=y

     

以上只是一个变量,就像任何其他计算机语言一样。

错误,a='Hej'符号中指定的任何文字都被解释为文字,因此'将是一个字符数组,您可以使用whos function看到这一点。

  

a

     

上面将向量a的第二个元素设置为字符串'a'。

正确,这是可行的,因为a是char类型,'a'(rhs)是a(2)='a' char。生成的1x1将包含“Haj”。

  

a

     

以上构建了步骤2中从3到9的向量。

正确,结果是:v=3:2:9。请注意v = [3 5 7 9]生成相同的向量!

  

3:2:10

     

以上构建了步骤3中5到15的载体。

正确

  

w=5:3:15

     

t=0:0.05:10;变为0到10之间的向量,增量为0.05。

从0到10,包括!

  

t

     

这就像常规函数定义一样。

与正弦函数相同,加上f=t.*exp(2*t);t的元素乘法

  

exp(...)

     

这绘制了y轴上的函数和x轴上的t。

这将绘制y轴上的矢量plot(t,f)和x轴上的f,因此结果图将包含数据点t(t(ii), f(ii))范围为1到矢量的长度。 iit的长度必须相同!

  

f

     

这只是设置图表的标题。

正确

  

title('Fin kurva');   g=3*t.*sin(t);

     

简单的功能。

正确

  

k=cos(t+2)+sin(t.^2);

     

访问在线帮助系统。

正确,但它不在线,它是内置的。例如:'help sin'将为您提供使用sin函数的帮助。

  

如果有条件        声明...      端;

     

言自明的。

     

如果有条件        声明...      其他        声明...      端;

     

也不言自明。

     

表示VARIABLE = VECTOR        SATSER ...      端;

     

常规for循环

是的,help XXX % XXX=sin, cos, plot, disp会依次获取VARIABLE中的所有值。您可以将VECTOR作为变量传递,也可以直接传递为VECTOR。示例:here

在线matlab文档通常可以提供您需要的所有信息,以及其他所有信息。

答案 1 :(得分:1)

c=A\y是矩阵左除法,用于求解方程Ac=y

如果A是方阵,则A\y相当于inv(A)*ypinv(A)*ymldivide(A,y),但它们的计算方式不同。< / p>

如果A是矩形矩阵,则inv不适用,因此A\y相当于pinv(A)*ymldivide(A,y)。它们是Ac=y的最小二乘解,但在不同意义上。

更多信息here