比如x=[1,2,3;2,1,1;0,1,1]
求第一行与第二行,第三行只差,同理求第二行与第一行第三行只差,第三行与一二行只差,我没有分数,求各位高手帮忙,谢谢了
求助:matlab任意两行只差
答案:3 悬赏:30 手机版
解决时间 2021-03-07 18:14
- 提问者网友:酱爆肉
- 2021-03-06 19:30
最佳答案
- 五星知识达人网友:你可爱的野爹
- 2021-03-06 20:24
程序如下,可实现任意矩阵按要求求解:
% Just for reference
x=[1,2,3;2,1,1;0,1,1];
rs=size(x,1);%x的行数
cs=size(x,2);%x的列数
r=zeros(rs*2,cs);
for i=1:rs
n1=mod(i+1,3);
if n1==0
n1=3;
end
n2=mod(i+2,3);
if n2==0
n2=3;
end
r(i*2-1,:)=x(i,:)-x(n1,:);
r(i*2,:)=x(i,:)-x(n2,:);
end
disp '结果为:'
r
结果为:
r =
-1 1 2
1 1 2
2 0 0
1 -1 -2
-1 -1 -2
-2 0 0
% Just for reference
x=[1,2,3;2,1,1;0,1,1];
rs=size(x,1);%x的行数
cs=size(x,2);%x的列数
r=zeros(rs*2,cs);
for i=1:rs
n1=mod(i+1,3);
if n1==0
n1=3;
end
n2=mod(i+2,3);
if n2==0
n2=3;
end
r(i*2-1,:)=x(i,:)-x(n1,:);
r(i*2,:)=x(i,:)-x(n2,:);
end
disp '结果为:'
r
结果为:
r =
-1 1 2
1 1 2
2 0 0
1 -1 -2
-1 -1 -2
-2 0 0
全部回答
- 1楼网友:爱难随人意
- 2021-03-06 22:15
用textread
[x1 x2 x3 x4 x5 x6 x7 x8]=textread(input,'%f,%f.......8个','headerlines',2)
- 2楼网友:杯酒困英雄
- 2021-03-06 21:11
%下面只适合于行数较少的情况
x=[1,2,3;2,1,1;0,1,1];
lines=size(x,1);
choose=nchoosek(1:3,2);%组合
choose=[choose;choose(:,[2,1])] %换前后顺序
data=x(choose(:,1),:)-x(choose(:,2),:) %这个就是差的矩阵,不过这里没有给出第几行减第几行的提示.你得与choose的结果结合起来看.
[choose,data] %结果第一列是被减的行号,第二列是减数的行号,后三列是结果.
1 2 -1 1 2
1 3 1 1 2
2 3 2 0 0
2 1 1 -1 -2
3 1 -1 -1 -2
3 2 -2 0 0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯