xinjt0624 发表于 2011-3-10 22:50

MATLAB编程,求救!对程序进行指导,谢谢!

有一矩阵,X=,若 想对Y1, Y2, Y3 按升序进行排列,同时也使得Y1, Y2, Y3前面相对应的X也跟着Y变化,假设Y3<Y1<Y2, 那么排序后变为x =[ X31,X32,X33,Y3; X11,X12,X13,Y1; X21,X22,X23,Y2]。再将X的前两行放到矩阵Z=rand(2,4)中,则Z=。
下面是我编的程序,但是维数发生错误,请大侠们指导一下,谢谢!非常感谢!

Z=rand(2,4);
=sort(x(: ,end));
Z=X(ind(1:2),4);

希望各位老师能给予指导,如果程序不正确还望指正,谢谢!

smtmobly 发表于 2011-3-10 23:15


有一矩阵,X=[
             X11,X12,X13,Y1;
             X21,X22,X23,Y2;
             X31,X32,X33,Y3],
若 想对Y1, Y2, Y3 按升序进行排列,同时也使得Y1, Y2, Y3前面相对应的X也跟着Y变化,假设Y3<Y1<Y2, 那么排序后变为
x =[
          X31,X32,X33,Y3;
          X11,X12,X13,Y1;
         X21,X22,X23,Y2
]。
再将X的前两行放到矩阵Z=rand(2,4)中,则Z=。
下面是我编的程序,但是维数发生错误,请大侠们指导一下,谢谢!非常感谢!

Z=rand(2,4);
=sort(x(: ,end));
Z=X(ind(1:2),4);

希望各位老师能给予指导,如果程序不正确还望指正,谢谢
回复:

两个问题,
一、请以比较容易让人看懂的方式来表述你的问题,比如我的这个格式。
二、这个问题不是什么困难的问题,请自行解决。

xinjt0624 发表于 2011-3-10 23:43

回复 2 # smtmobly 的帖子

額,第一个问题我记住了,可是第二个问题,我想了好久一直搞不明白为什么我的程序是错误的,由于我是刚入手matlab的,还请高手帮忙指点一下,谢谢!

Rainyboy 发表于 2011-3-11 10:49

回复 3 # xinjt0624 的帖子

切片操作没对,应该是:
Z = X(ind(1:2),:);

xinjt0624 发表于 2011-3-11 12:46

回复 4 # Rainyboy 的帖子

谢谢诶,豁然开朗,谢谢,谢谢!自己太粗心了

风花雪月 发表于 2011-3-11 17:02

matlab问题建议转到matlab版讨论,否则容易出现混乱

smtmobly 发表于 2011-3-11 21:08

我 很久没有用matlab了,记得很简单的,矩阵运算关键是要先在纸上演算好,把关系搞清楚,应该出错的概率很低的.
另一方面,些简单的矩阵的行列变换,都是经常用的,不是我不想回答您的问题,说实在的,
看到一些稍微花个半个小时不到的时间就能弄明白的问题还是自己弄明白比较好!

TNC 发表于 2011-3-11 23:51

smtmobly 发表于 2011-3-11 21:08 static/image/common/back.gif
我 很久没有用matlab了,记得很简单的,矩阵运算关键是要先在纸上演算好,把关系搞清楚,应该出错的概率很低的. ...

主动学习,愿意自己想办法解决的人越来越少了

ChaChing 发表于 2011-3-12 01:21

help sortrows

xinjt0624 发表于 2011-3-14 10:06

回复 6 # 风花雪月 的帖子

哦,知道了,谢谢提醒
页: [1]
查看完整版本: MATLAB编程,求救!对程序进行指导,谢谢!