我是 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' 转置,但它至少没有显示转置。
我是 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' 转置,但它至少没有显示转置。
它很老,但有很多误解。
当你写:
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 语句将一行与标量进行比较。不出所料,它的行为不像您预期的那样。