请问Matlab如何给符合某条件的元素批量赋值?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/06 18:41:04
请问Matlab如何给符合某条件的元素批量赋值?
比如一个矩阵mxnx4的矩阵A,在A(:,:,1)中的元素为1时,A中第3维相应第2、3个元素分别赋予某值(如100,101),A(:,:,1)中的元素为2时,A中第3维相应第2、3个元素分别赋予某值.,除了通过循环遍历A(:,:,1)中各元素判断并赋值,请问还有什么更好的方法?
比如一个矩阵mxnx4的矩阵A,在A(:,:,1)中的元素为1时,A中第3维相应第2、3个元素分别赋予某值(如100,101),A(:,:,1)中的元素为2时,A中第3维相应第2、3个元素分别赋予某值.,除了通过循环遍历A(:,:,1)中各元素判断并赋值,请问还有什么更好的方法?
是不是要达到类似于下面的效果?A=round(rand(2,3,4)*2)
rc1 = A(:,:,1)==1
rc2 = A(:,:,1)==2
RC1=logical(zeros(size(A)));
RC2=logical(zeros(size(A)));
RC1(:,:,2:3)=cat(3,rc1,rc1);
RC2(:,:,2:3)=cat(3,rc2,rc2);
A(RC1)=10
A(RC2)=20在这里例子中,A(i,j,1)=1时,A(i,j,2:3)赋值为10;A(i,j,1)=2时,A(i,j,2:3)赋值为20. 一组测试实例(数据随机产生):>> A=round(rand(2,3,4)*2)
A(:,:,1) =
1 2 2
1 0 2
A(:,:,2) =
2 1 0
2 1 1
A(:,:,3) =
1 1 1
2 1 1
A(:,:,4) =
1 1 2
2 0 1
>> rc1 = A(:,:,1)==1
rc1 =
1 0 0
1 0 0
>> rc2 = A(:,:,1)==2
rc2 =
0 1 1
0 0 1
>> RC1=logical(zeros(size(A)));
>> RC2=logical(zeros(size(A)));
>> RC1(:,:,2:3)=cat(3,rc1,rc1);
>> RC1
RC1(:,:,1) =
0 0 0
0 0 0
RC1(:,:,2) =
1 0 0
1 0 0
RC1(:,:,3) =
1 0 0
1 0 0
RC1(:,:,4) =
0 0 0
0 0 0
>> RC2(:,:,2:3)=cat(3,rc2,rc2);
>> RC2
RC2(:,:,1) =
0 0 0
0 0 0
RC2(:,:,2) =
0 1 1
0 0 1
RC2(:,:,3) =
0 1 1
0 0 1
RC2(:,:,4) =
0 0 0
0 0 0
>> A(RC1)=10
A(:,:,1) =
1 2 2
1 0 2
A(:,:,2) =
10 1 0
10 1 1
A(:,:,3) =
10 1 1
10 1 1
A(:,:,4) =
1 1 2
2 0 1
>> A(RC2)=20
A(:,:,1) =
1 2 2
1 0 2
A(:,:,2) =
10 20 20
10 1 20
A(:,:,3) =
10 20 20
10 1 20
A(:,:,4) =
1 1 2
2 0 1
rc1 = A(:,:,1)==1
rc2 = A(:,:,1)==2
RC1=logical(zeros(size(A)));
RC2=logical(zeros(size(A)));
RC1(:,:,2:3)=cat(3,rc1,rc1);
RC2(:,:,2:3)=cat(3,rc2,rc2);
A(RC1)=10
A(RC2)=20在这里例子中,A(i,j,1)=1时,A(i,j,2:3)赋值为10;A(i,j,1)=2时,A(i,j,2:3)赋值为20. 一组测试实例(数据随机产生):>> A=round(rand(2,3,4)*2)
A(:,:,1) =
1 2 2
1 0 2
A(:,:,2) =
2 1 0
2 1 1
A(:,:,3) =
1 1 1
2 1 1
A(:,:,4) =
1 1 2
2 0 1
>> rc1 = A(:,:,1)==1
rc1 =
1 0 0
1 0 0
>> rc2 = A(:,:,1)==2
rc2 =
0 1 1
0 0 1
>> RC1=logical(zeros(size(A)));
>> RC2=logical(zeros(size(A)));
>> RC1(:,:,2:3)=cat(3,rc1,rc1);
>> RC1
RC1(:,:,1) =
0 0 0
0 0 0
RC1(:,:,2) =
1 0 0
1 0 0
RC1(:,:,3) =
1 0 0
1 0 0
RC1(:,:,4) =
0 0 0
0 0 0
>> RC2(:,:,2:3)=cat(3,rc2,rc2);
>> RC2
RC2(:,:,1) =
0 0 0
0 0 0
RC2(:,:,2) =
0 1 1
0 0 1
RC2(:,:,3) =
0 1 1
0 0 1
RC2(:,:,4) =
0 0 0
0 0 0
>> A(RC1)=10
A(:,:,1) =
1 2 2
1 0 2
A(:,:,2) =
10 1 0
10 1 1
A(:,:,3) =
10 1 1
10 1 1
A(:,:,4) =
1 1 2
2 0 1
>> A(RC2)=20
A(:,:,1) =
1 2 2
1 0 2
A(:,:,2) =
10 20 20
10 1 20
A(:,:,3) =
10 20 20
10 1 20
A(:,:,4) =
1 1 2
2 0 1
请问如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?
怎样随机给matlab中矩阵的一个元素赋值
matlab如何删除矩阵中符合条件的多行全部元素
matlab中如何将一个魔方矩阵的第2行3列元素赋值给变量c?
matlab 中如何将一个魔方矩阵的 第2行3列元素赋值给变量c?
请问matlab 如何对一个函数求积分同时又能给函数变量赋值?
MATLAB 如何将一个完整的矩阵赋值到另一个矩阵的一个元素?
请教matlab 求[100,200]之间所有能被18整除的数,要求把找出所有符合条件的整数逐个赋值给数组x,最后显示x
MATLAB如何把二维数组的值依次赋值给一个列向量?
matlab中如何给一个矩阵中的某几个特定位置赋值
matlab 找出矩阵中符合条件的元素,并进行求和
MATLAB中如何给矩阵中的符号赋值