MATLAB怎么把一个矩阵的不同取值情况映射成一个向量? 5
比如,一个矩阵是3*9,每一行只能有一个1,是这个矩阵所有的组成情况。怎么能把所有的组成情况对应成一个向量,即1-729...
比如,一个矩阵是3*9,每一行只能有一个1,是这个矩阵所有的组成情况。怎么能把所有的组成情况对应成一个向量,即1-729
展开
展开全部
把1~729转换成9进制,这个9进制的3个数分别代表这个矩阵每一行中1所在的位置。
下面是求x=123对应的矩阵,你可以把123换成1~729中的任何一个数
clear;clc
x=123
b=de2bi(x-1,3,9)+1;
A=zeros(3,9);
for n=1:3
A(n,b(n))=1;
end
A
反过来,将这个矩阵中每一行1所在位置对应的三位数从9进制转为十进制,就得到了对应值
下面是求A对应的值
[p,q]=find(A);
y=sortrows([p q]);
y=9.^(0:2)*(y(:,2)-1)+1
下面是求x=123对应的矩阵,你可以把123换成1~729中的任何一个数
clear;clc
x=123
b=de2bi(x-1,3,9)+1;
A=zeros(3,9);
for n=1:3
A(n,b(n))=1;
end
A
反过来,将这个矩阵中每一行1所在位置对应的三位数从9进制转为十进制,就得到了对应值
下面是求A对应的值
[p,q]=find(A);
y=sortrows([p q]);
y=9.^(0:2)*(y(:,2)-1)+1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询