۱۳۹۲/۰۱/۲۰, ۰۷:۲۸ ب.ظ
سلام ، یک ماتریس 100 ردیف و 500 ستون رو تصور کنید میخواهم ستون های ماتریس رو به صورت اتفاقی حذف کنم ، مثلا 60 درصد ستونها رو میخواهم حذف کنم یعنی 300 ستون را به صورت اتفاقی متلب حذف کنه ، باید چکار کنم ؟
clear all
close all
clc
A=[1 2 3;4 5 6]
A(:,3)=[]
A =
1 2 3
4 5 6
A =
1 2
4 5
clear all
close all
clc
N=5;
M=10;
L=5;
A=rand(N,M)
for nn=1:L
a=1;
b=M-L+1;
for_delete=round(a+(b-a)*rand(1));
A(:,for_delete)=[];
end
A
A =
0.2619 0.1068 0.9037 0.0305 0.6099 0.1829 0.1679 0.0596 0.0967 0.6596
0.3354 0.6538 0.8909 0.7441 0.6177 0.2399 0.9787 0.6820 0.8181 0.5186
0.6797 0.4942 0.3342 0.5000 0.8594 0.8865 0.7127 0.0424 0.8175 0.9730
0.1366 0.7791 0.6987 0.4799 0.8055 0.0287 0.5005 0.0714 0.7224 0.6490
0.7212 0.7150 0.1978 0.9047 0.5767 0.4899 0.4711 0.5216 0.1499 0.8003
A =
0.1068 0.1829 0.0596 0.0967 0.6596
0.6538 0.2399 0.6820 0.8181 0.5186
0.4942 0.8865 0.0424 0.8175 0.9730
0.7791 0.0287 0.0714 0.7224 0.6490
0.7150 0.4899 0.5216 0.1499 0.8003
clear all
close all
clc
N=5;
M=10;
L=5;
A=rand(N,M)
zero_column=zeros(1,L);
for nn=1:L
a=1;
b=M;
for_zero=round(a+(b-a)*rand(1));
A(:,for_zero)=0;
zero_column(1,nn)=for_zero;
end
A
zero_column
A =
0.1206 0.2518 0.9827 0.9063 0.0225 0.4229 0.6999 0.5309 0.9686 0.7788
0.5895 0.2904 0.7302 0.8797 0.4253 0.0942 0.6385 0.6544 0.5313 0.4235
0.2262 0.6171 0.3439 0.8178 0.3127 0.5985 0.0336 0.4076 0.3251 0.0908
0.3846 0.2653 0.5841 0.2607 0.1615 0.4709 0.0688 0.8200 0.1056 0.2665
0.5830 0.8244 0.1078 0.5944 0.1788 0.6959 0.3196 0.7184 0.6110 0.1537
A =
0.1206 0.2518 0.9827 0 0 0 0.6999 0.5309 0 0.7788
0.5895 0.2904 0.7302 0 0 0 0.6385 0.6544 0 0.4235
0.2262 0.6171 0.3439 0 0 0 0.0336 0.4076 0 0.0908
0.3846 0.2653 0.5841 0 0 0 0.0688 0.8200 0 0.2665
0.5830 0.8244 0.1078 0 0 0 0.3196 0.7184 0 0.1537
zero_column =
4 5 6 5 9