matlab怎样从一个数组中提取正数并运算再放回原位

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 05:36:48
matlab怎样从一个数组中提取正数并运算再放回原位

matlab怎样从一个数组中提取正数并运算再放回原位
matlab怎样从一个数组中提取正数并运算再放回原位

matlab怎样从一个数组中提取正数并运算再放回原位
数组很大,运算速度很慢,可以提出所有大于0的值一起运算,得到的值再放回原位么?
对于这一问,可以采用逻辑下标,对大的数组可以有效地提高处理速度.
比如数组(或矩阵)为A,10行20列,其中有3个元素大于0,具体位置未知.
index_positive = A>0;
这样得到的index_positive 是这些元素的逻辑下标,index_positive是一个与A相同大小的10行20列的0,1值数组,只有那三个元素的位置上,值是1.
然后 B =A(index_positive)就得到了这三个元素的值.然后对B里的元素进行需要的运算.最好是相同的或有规律的,比如所有元素乘以2,那么就是C=2×B;或者第1个元素×1,第2个元素×2等,这时可以D=1:3; C=B .* D; .如果每一个要进行不同的运算,那这里只有对B进行循环.
最后要把C放回原位,用A(index_positive)= C;就可以了.
对于一个1000×1000的数组(矩阵),这个方法的速度提高是很可观的.原因在于它使用C语言实现了循环,而for循环是用matlab语言实现的,判断循环条件的时候大大消耗了时间.
希望对你有所帮助.

matlab怎样从一个数组中提取正数并运算再放回原位 matlab中cat获取高维数组,怎样循环表示每一个数组的行列 Matlab怎样从数组矩阵中随机取数?我初次接触matlab,想知道:Matlab怎样从矩阵随机取数,比如,我要从数组a=[1 2 3 4 5 6 7 8 9 10]中随机取5个数并付值给数组x=[x1 x2 x3 x4 x5],有顺序要求,且不能重复取数 matlab算法从一个数组中选出5个数并全部显示意思是把每种可能性都显示出来,像是排列组合 在matlab中,怎样提取一个矩阵的一行元素或者提取一列元素?比如,从一个6*6矩阵中,提取它的第一行元素,形成一个6维行向量. Matlab中数组元素为矩阵怎样表示 matlab中怎样把图像转化为一维数组, matlab基础作业一行100列的Fibonacc数组,用For循环指令来寻求该数组中第一个大于10000的元素,并指出其位置 统计一个数组中正数和负数的个数 汇编程序:统计一个数组中正数和负数的个数 MATLAB中怎样从矩阵中找出大于1的数,并将这些数排成一个列向量 Matlab中怎么返回一个数组中元素的个数 Matlab中怎样循环处理并将每次结果以循环次数命名保存?比如我从一个含128帧dcm文件中,逐次提取共128个单帧dcm文件并依次以1-128.dcm命名,现在只能提出一张……for i=1:128img = dicomread('tomo.dcm','fram labview中怎样从数组中取数 怎样从滤纸中提取纤维素酶?不好意思啊,是提取纤维素!多大了一个字! matlab循环得到n个数组,怎样把这些数组,在循环的过程中,n个数组赋为一个矩阵即合为一个矩阵?在循环中 怎样从一个二维数组中删除一列元素 C#语言 食盐能否提取氯化钠,怎样从食盐中提取氯化钠