我是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'进行转置,但它至少没有显示转置。
答案 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语句将一行与标量进行比较。它不会像你期望的那样表现不正常。