Matlab编程中如何设置极限

Matlab编程中如何设置极限,matlab,Matlab,所以我想生成一个像θ=asind(x)这样的方程,然后我做一个如下的程序: x=0.5:5 theta=asind(x) if x>1 theta = out of range otherwise x=<1 end fprintf('theta') x=0.5:5 θ=asind(x) 如果x>1 θ=超出范围 否则x=您说过希望theta的元素在x的对应值超出范围时显示“超出范围”,否则显示x的逆正弦 这在Matlab中有点奇怪,因为Matlab中的数据往往是数字数组或字符数组,

所以我想生成一个像θ=asind(x)这样的方程,然后我做一个如下的程序:

x=0.5:5
theta=asind(x)
if x>1
theta = out of range
otherwise x=<1
end
fprintf('theta')
x=0.5:5
θ=asind(x)
如果x>1
θ=超出范围

否则x=您说过希望
theta
的元素在
x
的对应值超出范围时显示“超出范围”,否则显示
x
的逆正弦

这在Matlab中有点奇怪,因为Matlab中的数据往往是数字数组或字符数组,而不是数字和字符的混合体

有一种方法可以使用所谓的单元数组来混合数字和字符。可以这样创建单元数组

cell1={};
细胞2=细胞(5,1);
您可以像这样分配和访问元素

cell1{1}='Hello';
cell1{2}=7;
disp(单元{1})
所以(我认为)你想写的程序看起来像

x=(0.5:5)';
θ=单元(大小(x));
对于i=1:长度(x)
如果x(i)<-1 | | x(i)>1
θ{i}='超出范围';
其他的
θ{i}=asind(x(i));
结束
结束
x、 西塔
哪个输出

x=
0.5000
1.5000
2.5000
3.5000
4.5000
θ=
[30.0000]
“超出范围”
“超出范围”
“超出范围”
“超出范围”

但是,您可能应该重新考虑您希望程序执行的操作,因为在Matlab中,单元格数组不是一种特别容易使用的数据类型。

一个明智的做法是设置无效或缺少NaN的值(不是数字)。无需循环即可轻松完成此操作:

x=0.5:0.1:5;  % changed spacing so there is more than one valid x
theta=asind(x);
theta(x>1)=NaN;
plot(x,theta); % will plot only the valid values

程序的输出应该是什么?目前,您的代码不是有效的Matlab程序。如果x>1,θ值将显示“超出范围”,如果x=将显示“超出范围”的位置?对于超出范围的
x
的每个值,您是否会收到一条“超出范围”消息?有效值将显示在哪里?你能明确地写出你认为这个程序应该输出什么吗?你是想把字符串
分配到
θ
?如果是这样,你应该把它放在单引号之间(
“超出范围”
)。那
nan
呢?当由于某种原因无法定义某个值时,matlab通常会使用这一方法。例如
inf-inf
0/0