0

我是 scilab 的新手,并试图解决如何处理行和列矩阵。如果我做

 k=1:10;
 d=k*3

我得到一排

for k=1:10
d=k*3;
disp(d)
end

产生一列。我想使用需要行矩阵的wavewrite函数,但我想在我的代码中使用条件语句,如果我写

 k=1:10;
 if k==5
 d=7
 else
 d=k*3

它忽略了如果,否则。我在第二个示例中尝试过 d=d' 转置,但它至少没有显示转置。

4

1 回答 1

0

它很老,但有很多误解。

当你写:

k=1:10;

您的变量 k 是一个 1 行 10 列的矩阵。换句话说,一行。

如果你想要一个专栏:

k=(1:10)';

运算符'转置你的矩阵。

现在,当您使用以下内容时:

for k=1:10
d=k*3;
disp(d)
end

你声称你正在看到一个专栏。显示器上看起来像一列的东西实际上是一系列标量。在这里,您声明一个 for 循环,在每次迭代时 k 是一个标量(不再是行或列)。然后 d 也是一个标量,您将其显示在屏幕上。在每次迭代中,您没有列,而是有一个标量。

最后

 k=1:10;
 if k==5
 d=7
 else
 d=k*3

这次 k 是一行,但是您的 if 语句将一行与标量进行比较。不出所料,它的行为不像您预期​​的那样。

于 2014-02-13T06:14:44.950 回答