matlab 中 ym1(ym1<1) = 1; xm1(xm1<1) = 1;什么意思
%-- bounds checking
ym1(ym1<1) = 1; xm1(xm1<1) = 1;
yp1(yp1>dimy)=dimy; xp1(xp1>dimx) = dimx;
请高手解释,以上函数什么意思?
[解决办法]
matlab的向量化操作在你这短短几句中表现的淋漓尽致
例如:一个x(可以是一维向量,也可以是矩阵,二维,三维,多维均可),其值域为[0,2],现在想要将x中小于1的值全部置1,
其他语言的解法是循环,前提是你要知道x到底是几维,因为几个维度,你需要写几层循环,简单的,以2维矩阵为例:
// 其他类c语言
for(int i=0;i<row;++i)
for(int j=0;j<col;++j)
if(x(i,j)<1) x(i,j) = 1;
// matlab code
idx = find(x<1);
x(idx) = 1;
// matlab code2
x(x<1) = 1;
ym1(ym1<1) = 1; // ym1中所有小于1的元素置1
xm1(xm1<1) = 1; // xm1中所有小于1的元素置1
yp1(yp1>dimy)=dimy; // yp1中所有大于dimy的元素赋值为dimy
xp1(xp1>dimx) = dimx; //xp1中所有大于dimx的元素赋值为dimx