再matlab中怎样将数组中的一部分值传给另外一个数组
例如:数组为A([400,240]),我只想将A中的前100行和100列的值传给数组B,怎么写?我只是个菜鸟,求援助!!!!!!!!!...
例如:数组为A([400,240]),我只想将A中的前100行和100列的值传给数组B,怎么写?
我只是个菜鸟,求援助!!!!!!!!! 展开
我只是个菜鸟,求援助!!!!!!!!! 展开
2个回答
展开全部
总体思路:设定筛选条件,将数组中符合条件的元素筛选出来(可以筛选出元素值也可以筛选出元素对应的下标),然后将元素值赋值给另外一个数组的元素
参考代码:
clc
clear all
close all
x = randi(10, 1, 5); % 原始数据
disp('x=');
disp(x);
y1 = -1 * ones(1, length(x)); % 存储筛选出的结果,并初始化成不可能出现的结果
%-- 筛选符合条件的元素下标,并将对应元素存到y1 --%
ix = find(x>=3); % 例如,筛选出原始数据中大于3的元素的下标
if(isempty(ix))
disp('x的元素均不符合条件');
else
y1(1:length(ix)) = x(ix); % 将符合条件的元素存到y1中
y1( find(y1==-1) ) = []; % 剩余元素删除
disp('y1=');
disp(y1);
end
%----------------------------------------------%
y2 = -1 * ones(1, length(x)); % 存储筛选出的结果,并初始化成不可能出现的结果
%-- 筛选符合条件的元素值,并存入y2 --%
for i=1:length(x)
if(x(i)>=3) % 逐个检测x的元素是否符合条件,把符合条件的元素值赋值给y2
y2(i) = x(i);
end
end
y2( find(y2==-1) ) = []; % 剩余元素删除
disp('y2=');
disp(y2);
%----------------------------------%
输出结果
x=
7 1 9 10 7
y1=
7 9 10 7
y2=
7 9 10 7
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询