matlab里sub2ind和ind2sub怎么用?
在命令窗口输入:
>> A=[4 7 2 9 8;3 9 1 4 3;1 5 9 6 4;8 3 7 1 0]
A =
4 7 2 9 8
3 9 1 4 3
1 5 9 6 4
8 3 7 1 0
则A中每个元素对应的索引如下(MATLAB中数据是按列的方式存储的):
1 5 9 13 17
2 6 10 14 18
3 7 11 15 19
4 8 12 16 20
ind=sub2ind(siz,I,J):siz表示要转换的矩阵的行列数,I是要转换矩阵的行标,J是要转换矩阵的列标。I,J的行列数必须相同。ind为输出参数,其行列数与I,J相同。ind即为索引。
在命令窗口中输入:
>> ind=sub2ind(size(A),[1,2;3,4],[1,1;2,2])
则显示
ind =
1 2
7 8
从运算结果可以看出,在矩阵A中,下标(1,1)的索引值为1,下标(2,1)的索引值为2,下标(3,2)的索引值为7,下标(4,2)的索引值为8
matlab数组中元素引用有三种方式:
1.索引 就是由一个整数表示数组中的某一数据,按照列进行排列
2.下标 如果是二维,就是行号和列号
3.布尔数
sub2ind就是将下标转换为索引 !
ind2sub函数就是在指定矩阵尺寸(size)前提下将给定的index转化成行列形式
在命令窗口输入:
>> A=[4 7 2 9 8;3 9 1 4 3;1 5 9 6 4;8 3 7 1 0]
A =4 7 2 9 8
3 9 1 4 3
1 5 9 6 4
8 3 7 1 0
2.则A中每个元素对应的索引如下(MATLAB中数据是按列的方式存储的):
1 5 9 13 17
2 6 10 14 18
3 7 11 15 19
4 8 12 16 20
ind=sub2ind(siz,I,J):siz表示要转换的矩阵的行列数,I是要转换矩阵的行标,J是要转换矩阵的列标。I,J的行列数必须相同。ind为输出参数,其行列数与I,J相同。ind即为索引。
在命令窗口中输入:
>> ind=sub2ind(size(A),[1,2;3,4],[1,1;2,2])
3.则显示
ind =
1 2
7 8
4.从运算结果可以看出,在矩阵A中,下标(1,1)的索引值为1,下标(2,1)的索引值为2,下(3,2)的索引值为7,下标(4,2)的索引值为8
matlab主程序和子程序怎么写到一块
写在一起,必须都是function,如果你的主程序是普通的m程序,不是function,而子程序是function,这两个程序是不能写在一起的 举个例子:主程序 a=1;b=2;c=addfun(a,b)子程序 function c=addfun(a,b)c=a+b;return 以上是不能写在一个m文件里的。但是 function mainfun()clc a=1;b=...
在matlab中,从n个数字里面不重复地选出1个到n个组合,一共2的n次方-1...
if length(array) > 1 for elem = subcombine(array(2:end))subcombs = [subcombs{:}, elem, [elem{:}, array(1)]];end end 运行结果 subcombine 函数接受一个向量作为输入参数,返回一个子元素都是向量的元胞结构,每个子元素向量都代表一种组合;函数第 6 行解析:赋值号右边数组中,第...
matlab中function函数的用法
matlab里function怎么用M函数除了直接用函数名调用之外,也可以进行参数传递,使得Matlab应用更加方便。M函数文件以function开头,格式为function 输出变量 = 函数名称(输入变量)语句。VB Function关键字 Function函数是包含在Function和End Function语句之间的一组VBScript语句。 Function函数与Sub过程类似。但 ...
matlab 如何提取不同.mat数据包中命名相同的数据
prefix='sub'; %好的名字很重要啊 for nn in 2:20 % sub2到sub20只有19个mat文件啊 load(['sub', num2str(nn)])deltaSet(nn)=delta; %所以delta都存放在deltaSet里 end deltaMean=mean(deltaSet);
MATLAB开发环境有几个窗口,他们的主要功能是什么?
用Add Folder?按钮可以将某一目录加入搜索路径,选择Add with Subfolder?按钮可将选中目录的子目录也包括在搜索路径中。可以用what命令在搜索路径中查看文件,在命令窗口输入what命令后就可以显示当前目录下的所有文件。利用type 命令可以查看任一文件的原代码,如type show可以将文件show自动显示在命令窗口。还可以利用...
MATLAB中怎么在数组找第二小的数
方法一 先找到最小值,然后把最小值去掉,再找最小值即为第二小的数,比如欲查找的数组为a。b=a;[m,i]=min(b);b(i)=max(b);[m,i]=min(b);m为第二小的数,其位置为i。方法二 直接找第二小的值。假设待查找的数组为b,则第二小的值为 a=min(b(find(b-min(b)))...
Matlab 7.0定义数组问题
matlab定义无限数组 无限大的数组是不可能的, 你的内存,连带虚拟内存都是有限的 但长度动态增长的数组在MATLAB里是可以的 matlab 里面怎么定义数组 A1=[1,2,4,5]; %一维数组 A2=rand(3,4) %二维数组 VB 二维数组定义的问题! 数组原来的值需不需要保存呢?如果不需要那直接用ReDim就...
matlab中,怎么样在主函数里调用子函数?是用什么命令啊?
matlab可以在m文件函数中定义一个函数和多个子函数,但是需要注意的是子函数只能由同一m文件中的函数调用。如下面的例子:function [max,min]=mypfun(x) %主函数 n=length(x);max=mysubfun1(x,n);min=mysubfun2(x);function r=mysubfun1(x,n) %子函数1 x1=sort(x);r=x1(n);functio...
matlab函数介绍
clear 从内存中清除变量和函数 exit 关闭MATLAB load 从磁盘中调入数据变量 pack 合并工作内存中的碎块 quit 退出MATLAB save 把内存变量存入磁盘 who 列出...交换对称位置上的元素 ind2sub 据单下标换算出全下标 reshape 矩阵变维 rot90 矩阵逆时针90°旋转 sub2idn 据全下标换算出单下标 tril 抽取下三角阵 triu...
matlab怎么实现整数线性规划或者非线性规划?
做线性规划的老大是LINGO,用起来很方便,比较傻瓜的一种。MATLAB做矩阵问题比较厉害。MATLAB做线性和非线性规划都有工具箱,做整数线性规划要额外到网上下载ipslv_mex的工具箱。我感觉是不太好用。在MATLAB中输入help linprog就会看到用法。参考资料:MA ...
皇连那格: 这个是这样的 matlab数组中元素的引用有三种方式 1.索引 就是有一个整数表示数组中的某一数据 2.下标 与我们在C语言中一样 3.布尔数 sub2ind就是将下标转换为索引
东昌区19572763338: matlab如何创建多维数组 - ?
皇连那格: 创建多维数组示例:>>A(3,3,3)=1%创建3*3*3数组,未赋值元素默认设置为0A(:,:,1)=000000000A(:,:,2)=000000000A(:,:,3)=000000001>>B(3,4,:)=1:4%创建3*4*4数组B(:,:,1)=000000000001B(:,:,2)=000000000002B(:,:,3...
东昌区19572763338: 在MATLAB中,a=[2 6 9;4 2 8;3 0 1],sub2ind(size(a),3,2)结果为6,怎么得到结果的呀... - ?
皇连那格: >> a=[2 6 9;4 2 8;3 0 1],a = 2 6 9 4 2 8 3 0 1 sub2ind(size(a),3,2) 三行二列,对于A竖着数 第一个是2 第二个4 第三个是3 第四个是6 第五个是2 第六个是0 是第三行 第二列的位置, 同样 sub2ind(size(a),1,3) 是第一行第三列,应该数到第七个才是他 所以sub2ind(size(a),1,3)结果为7
东昌区19572763338: MATLAB如何进行数组扩维 - ?
皇连那格: matlab多维数组操作1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组. 2.利用标准数组函数创建多维数组 A=zeros(4,3,2) 生成一个4行3列2页的三维全0数组,ones,rand和randn等函数有相似的用法. 3.利...
东昌区19572763338: matlab里如何判断两个矩阵相等?要用到范数 - ?
皇连那格: 第一部分:矩阵基本知识(只作基本介绍,详细说明请参考Matlab帮助文档) 矩阵是进行数据处理和运算的基本元素.在MATLAB中 a、通常意义上的数量(标量)可看成是”1*1〃的矩阵;b、n维矢量可看成是”n*1〃的矩阵;c、多项式可由...
东昌区19572763338: matlab中矩阵之间赋值 - ?
皇连那格: 我猜你是想用b=a(1,:) 表示取a的第一行的所有元素,这样等价于b=a 对b=a(:)测试,当a=[1 2 3;6 5 4;8 9 7]时b= [ 1 6 8 2 5 9 3 4 7]'就是按列取值构成列向量,再c=b(:) ,此时c=b也为列向量. 可以看出其就是按列取值构成列向量. 具体matlab里面怎么要求的不清楚.
东昌区19572763338: 在MATLAB中,“矩阵元素的序号和下标可以相互转换”,这句话怎么理解?谢谢 - ?
皇连那格: 例如矩阵a >> a=[1 2 3; 4 5 6 ] a = 1 2 3 4 5 6 则a(1,1)=1, a(2,3)=6,其中,a(1,1)表示a的第一行第一列的元素,a(2,3)表示a的第二行第三列的元素.(1,1)和 (2,3)就是下标(Subscript ).矩阵元素的序号就是矩阵元素的存储顺序,在这个例子...
东昌区19572763338: matlab中多维数组存储方式 - ?
皇连那格: 1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组. 2.利用标准数组函数创建多维数组 A=zeros(4,3,2) 生成一个4行3列2页的三维全0数组,ones,rand和randn等函数有相似的用法. 3.利用直接索引方式生成多维数组A=zeros(2,3)A(:,:,2)=ones(2,3)A(:,:,3)=4 上面的代码先生成一个二维数组作为三维数组的第一页,然后通过数组直接索引,添加第二页、第三页.
东昌区19572763338: 为什么用sub2ind函数总是出错 求帮助 - ?
皇连那格: matlab数组中元素引用有三种方式: 1.索引 就是由一个整数表示数组中的某一数据,按照列进行排列 2.下标 如果是二维,就是行号和列号 3.布尔数 sub2ind就是将下标转换为索引 ! ind2sub函数就是在指定矩阵尺寸(size)前提下将给定的index转化
东昌区19572763338: MATLAB中稀疏矩阵D如何赋值. - ?
皇连那格: 用sub2ind>> a=zeros(5); i = [2;3;4]; j = [1;4;2];>> a(sub2ind(size(a), i, j))=1 a = 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 hokvens: 这个正是matlab的精髓,matlab里面很多东西都不需要循环来完成,速度快而且语句简单