1

我已被告知我们需要知道哪些陈述,这是我对他们所做的事情的回答。如果我在某处弄错了,请纠正我,并请告诉我如何学习我可能需要的更高级的语句,例如我尚未学习的元素操作的.*and 。.^

%  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 轴上,将 t 绘制在 x 轴上。

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。

4

2 回答 2

1

x=[2 3]

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

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

y=[4 5]'

这是一个列向量。

[4 5]创建一个1x2向量,'转置算子,将其转换为2x1向量。

A=[x; y']

分号分隔矩阵的行。

确实,并且因为xis1x2y'also,Ais2x2与它的第一行x和第二行y'

B=sin(A)

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

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

z=x.*y'

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

.*逐元素乘法运算符。重要的是xy大小相同,否则会出错!的每个元素x都与 的对应元素相乘y,在这种情况下,结果将是:[2*4 3*5]

c=A\y

这很重要,并且可以解决方程组,但是哪个?原方程如何表述?以上解决了Ay=c吗?请明确说明。

文档:反斜杠或矩阵左除法。如果 A 是方阵,则 A\B 与 inv(A)*B 大致相同,只是计算方式不同。

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

a='Hej'

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

'不正确,符号中指定的任何文本都被解释为文本,因此a将是一个字符数组,您可以使用whos 函数看到这一点。

a(2)='a'

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

正确,这仅是可行的,因为 a 是 char 类型,而 'a' (rhs) 是1x1char。结果a将包含“Haj”。

v=3:2:9

上面用步骤 2 构造了一个从 3 到 9 的向量。

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

w=5:3:15

上面用第 3 步构造了一个从 5 到 15 的向量。

正确的

t=0:0.05:10;

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

从0到10,包括!

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

这就像一个常规的函数定义。

与正弦函数相同的事情,加上texp(...)

plot(t,f)

这将函数绘制在 y 轴上,将 t 绘制在 x 轴上。

这会f在 y 轴和tx 轴上绘制向量,因此生成的图将包含(t(ii), f(ii))范围ii从 1 到向量长度的数据点。t并且f长度必须相同!

title('Fin kurva');

这只是设置图表的标题。

正确的

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

简单的功能。

正确的

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

访问在线帮助系统。

正确,但它不是在线的,它是内置的。例如:'help sin' 会给你一些使用 sin 函数的帮助。

如果条件声明...结束;

不言自明。

if 条件语句... else 语句... 结束;

也是不言自明的。

对于 VARIABLE = VECTOR SATSER... 结束;

一个普通的for循环

是的,将按顺序VARIABLE获取所有值。VECTOR您可以VECTOR作为变量传递,也可以直接作为1:2:10. 例子:这里

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

于 2012-08-08T07:16:07.113 回答
1

c=A\y是解方程的矩阵左除法Ac=y

如果A是方阵,则A\y等价于或inv(A)*y,但它们的计算方式不同。pinv(A)*ymldivide(A,y)

如果 A 是一个矩形矩阵,inv则不适用,所以A\y等价于pinv(A)*ymldivide(A,y)。它们是最小二乘解,Ac=y但意义不同。

更多信息在这里

于 2012-08-08T07:28:18.153 回答