xinjt0624 发表于 2011-3-10 11:10

取值范围自动变化问题

有一个矩阵x=;第一行的取值范围是,第二行的范围是;第三行的范围是,根据每行数字的总和进行升序排列,变成x=,那么相应的每行的取值范围也要跟着改变,如何通过MATLAB语言实现每行的范围在矩阵x发生变化后,其范围也跟着变化?如果用到sort函数,会涉及到index语句,还请高手进行指点,谢谢

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

回复 1 # xinjt0624 的帖子

取值范围也作成矩阵,在你所说的例子中:
排序前值矩阵为:x = ;
排序前的取值范围矩阵为: xa = ;

再排序中,会对值矩阵进行的列交换,将同样的交换作用在取值范围矩阵上,则排序后为:
y = ;
ya =;

qibbxxt 发表于 2011-3-10 16:23

clear;clc;close all
A = ;
R = ,2) - 1,max(A,[],2) + 1];
[~,ind] = sort(sum(A, 2));
A = A(ind, :);
R = R(ind, :);

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

谢谢,又学到了不少知识

ChaChing 发表于 2011-3-13 22:22

本帖最后由 ChaChing 于 2011-3-13 22:24 编辑

qibbxxt 发表于 2011-3-10 16:23 http://www.chinavib.com/static/image/common/back.gif
...[~,ind] = sort(sum(A, 2));...

看高手的回帖就是会有所得!
第一次看到"~"这种用法, 我只知有"非"的用法, 只得马上开matlab, help并搜索下, 但没找到!
直接试下, 但会报错!
??? [~,ind] = sort(sum(A, 2))
|
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.我的R2009a, 请问这是否又是新版功能?

curb 发表于 2011-3-17 14:08

ChaChing 发表于 2011-3-13 22:22 static/image/common/back.gif
看高手的回帖就是会有所得!
第一次看到"~"这种用法, 我只知有"非"的用法, 只得马上开matlab, help并搜索下 ...

哈,我也是换了版本才学会的,新版本发现程序有用不到的变量就会提醒,还提示新的用法。坏处就是如果去低版本上运行会报错

2010版还出了新功能,把光标指向的变量在全文中高亮显示
页: [1]
查看完整版本: 取值范围自动变化问题