MATLAB数组的排列

我要实现几个功能:
1、取数组的第一行到第十行并另外开辟一个数组存储这十行变量——这个应该很简单
2、我有一个索引文件,该文件排列的顺序和原数组不一样,且比较混乱
比如
1 原数组第5行
2 原数组第20行
3 原数组第11行
4 原数组第101行
5 原数组第8行
能不能按照索引文件现在的1、2、3、4、5这样对原数组重排?
3、我用每一行的行向量与一给定列向量画图,plot(x,y),xy维数相同,比如前十行分别绘制的图像比较接近,我用hold on保持住这十条曲线,但还要取一个平均曲线不知道用什么命令。
PS:百度知道上高手挺多的,而且回答速度比各大MATLAB论坛都要快很多,我才学MATLAB几天,对各种命令都不熟悉,希望大家指导,我都会额外加分的。
谢谢各位提供参考意见,我根据大家的指导画出了草图,图中能看出10条曲线,现在有个问题就是纵坐标要颠倒一下而图形不变,就是比如原来纵坐标又下到上是0.001~1000,现在要1000~0.001。可不可以实现,还是在画图前对列向量进行操作?

可以啊。完全可以的

方法一:你画完图时,用这个句柄命令

set(gca,'YDir','reverse')

就是把Y轴的值颠倒下;

方法二:在figure窗口选择edit,再选择Axes properties ,然后选择Y轴,再点下最下面的reverse复选框,就搞定了,如图;

方法三:太复杂了我就不告诉你了,如果上面的2个方法你还搞不好,你给我留言,我再给你介绍吧!

采纳吧,我在做任务急需采纳!谢谢(⊙o⊙)

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-11
1 取A的第一行到第十行并另外开辟一个矩阵B存储这十行变量
>> A=magic(15);
>> B=A(1:10,:)

B =

122 139 156 173 190 207 224 1 18 35 52 69 86 103 120
138 155 172 189 206 223 15 17 34 51 68 85 102 119 121
154 171 188 205 222 14 16 33 50 67 84 101 118 135 137
170 187 204 221 13 30 32 49 66 83 100 117 134 136 153
186 203 220 12 29 31 48 65 82 99 116 133 150 152 169
202 219 11 28 45 47 64 81 98 115 132 149 151 168 185
218 10 27 44 46 63 80 97 114 131 148 165 167 184 201
9 26 43 60 62 79 96 113 130 147 164 166 183 200 217
25 42 59 61 78 95 112 129 146 163 180 182 199 216 8
41 58 75 77 94 111 128 145 162 179 181 198 215 7 24

2例如 把A的3和15行赋值给C的1和2行
>> C=zeros(10,15);
>> C(1,:)=A(3,:);
>> C(2,:)=A(15,:);
>> C

C =

154 171 188 205 222 14 16 33 50 67 84 101 118 135 137
106 123 140 157 174 191 208 225 2 19 36 53 70 87 104
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

3新建一个向量ya,他等于其他10个的平均值,hold on,plot(x,ya)就行

set(gca,'YDir','reverse')本回答被提问者采纳
第2个回答  2010-08-10
matlab不用定义变量,你使用时直接使用就可以了。
比如对数组a操作
[m,n]=size(a);%a的行列
for i=1:10 %即为第一问
b[i]=a[i];
end

%假设索引文件为index,有mm个索引,则
count=1;
for i=1:mm
temp=index[i];
result(count)=a[temp];
count=count+1;
end

%%画图.假设给定列向量为col
i=5;%第五行

for j=1:n
plot(a(i,j),col(j),'b');
hold on;
end
则为蓝色曲线
第3个回答  2010-08-10
PS那句我认可

matlab数组排序
首先,`sort`函数是用于对数组进行升序排序的基本工具。简单而直接,适用于单一数组。其次,`sortrows`函数适用于包含多列的矩阵,可以按照指定列的值对矩阵进行排序。若需降序排序,只需在调用`sort`函数时加入`'descend'`参数即可。对于自定义排序规则,`sort`函数提供第三个参数,允许使用自定义比较函数...

如何将matlab中的数组分为2页,3行,3列?
1、首先打开matlab,在命令行窗口中输入help reshape,对reshape有一个认识,如下图所示。2、这时输入reshape([1:18],[3 3 2]),如下图所示。3、reshape([1:18],[3 3 2])中的[1:18]意思是数组1--18,后边[3 3 2]意思是将数组分为3行、3列、2页。4、最后查看二维数组:[9 8 7 1...

matlab怎么对数组进行排序?
1、首先在我们的电脑上打开matlab命令行窗口,输入“A=[1 3 2 6 4 8 1 12]”,按回车键创建一个一维数组A。2、然后我们输入“sort(A)”,这是将数据从小到大排列,按回车键。3、然后我们输入“sort(A,'descend')”,这是将数据从大到小排列,按回车键。4、如果我们需要知道数据排序前的序...

用MATLAB怎么给一个数组排序?
用sort函数 B=sort(A)这样是默认 第一维(竖着)升序排列 B=sort(A,'descend') 是竖排降序排列 B=sort(A,2,'descend') 是横排降序排列 [B,XI]=sort(A) 是吧排序后的下标存放在XI数组里面

matlab如何对数组元素进行排列索引?
1、在matlab中索引超出数组范围,首先检查下是不是多写了一个数,然后可以检查下数组的下标是不是有越界。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。2、方法:限制索引取值范围0到(数组长度-1),或者增加数组的长度。arr[0]=1;arr[1]=2;此数组长度为2,下标最大为1...

matlab如何将数组按照逗号间隔进行排列?
B=A(end:-1:1,:)表示将A的行的顺序从尾到头排列构成B,也就是B的第一行对应A的最后一行,第二行对应A的倒数第二行,以此类推。 C=A(:,end:-1:1)则是对A的列做类似倒的排列,得到C。A(end:-1:1,:),同样逗号前表示行,后表示列,列的部分为冒号,表示列数任意,也就是对A整行...

matlab中的数组怎么用?
q=zeros(1,n)表示q为全0数组;n=length(a)表示获得数组a的最大维度。1、数组的维数:在MATLAB中,允许标量数据沿行、列、页等方向排列成 ‘长方体’,而构成数组,而行、列、页等排列方向就分别被 称为行维、列维和页维。2、数组的规模及相关术语:数组沿某个维度排放的元素总数,称为该维度...

MATLAB中数组排序
简单地说,y=sort(x),就是把x数组的数按从小到大排序,并存入y中,然后x里面的值保值不变。直接在matlab输入命令,help sort 这样更加准确

MATLAB数组的排列
set(gca,'YDir','reverse')就是把Y轴的值颠倒下;方法二:在figure窗口选择edit,再选择Axes properties ,然后选择Y轴,再点下最下面的reverse复选框,就搞定了,如图;方法三:太复杂了我就不告诉你了,如果上面的2个方法你还搞不好,你给我留言,我再给你介绍吧!采纳吧,我在做任务急需采纳...

用MATLAB怎么给一个数组排序?
Matlab 用sort函数排序 二维数组2008-09-14 22:51在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可, 如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B...

相似回答
大家正在搜