关于Scilab中条件语句的问题

时间:2013-11-08 19:33:30

标签: scilab

我是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'进行转置,但它至少没有显示转置。

1 个答案:

答案 0 :(得分: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语句将一行与标量进行比较。它不会像你期望的那样表现不正常。