我有矩阵A
A= [0 0 2 2 2 2 0 0 1 1 1 0 3 3;
2 2 2 2 0 0 1 1 1 0 0 3 3 0;
Run Code Online (Sandbox Code Playgroud)
如你所见,其中有连续的数字; 注意例如2 2 2 2第一行和第二行.
对于在该矩阵中出现的每个数字(或者至少对于从我的矩阵中的1到最大数字的每个数字),我想要一个输出矩阵,该矩阵指示该数字的序列,并且该数字仅在原始矩阵中.
例如,对于1:第一行有三个连续数字,第二行有三个:我想在第一个输出矩阵中指出这个,如下所示:
Matrix 1 = [ 0 0 0 0 0 0 0 0 1 2 3 0 0 0;
0 0 0 0 0 0 0 1 2 3 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)
数字相同2:
Matrix 2 = [ …Run Code Online (Sandbox Code Playgroud) 怎么重复
A = [ 1 2 ;
3 4 ]
Run Code Online (Sandbox Code Playgroud)
重复
B = [ 1 2 ;
2 1 ]
Run Code Online (Sandbox Code Playgroud)
所以我希望我的答案像矩阵C:
C = [ 1 2 2;
3 3 4 ]
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
A= [ 1 2 4
2 3 1
3 1 2 ]
Run Code Online (Sandbox Code Playgroud)
所以上面矩阵的答案应该是:
B = [ 1 3 7
9 12 13
16 17 19 ]
Run Code Online (Sandbox Code Playgroud)
谢谢
请帮助我改进以下Matlab代码以缩短执行时间.
实际上我想制作一个随机矩阵(大小[8,12,10]),并且在每一行上,只有1和之间的整数值12.我希望随机矩阵具有每列的值(1,2,3,4)相等的元素之和2.
以下代码将使事情更加清晰,但速度非常慢.谁能给我一个建议?
clc
clear all
jum_kel=8
jum_bag=12
uk_pop=10
for ii=1:uk_pop;
for a=1:jum_kel
krom(a,:,ii)=randperm(jum_bag); %batasan tidak boleh satu kelompok melakukan lebih dari satu aktivitas dalam satu waktu
end
end
for ii=1:uk_pop;
gab1(:,:,ii) = sum(krom(:,:,ii)==1)
gab2(:,:,ii) = sum(krom(:,:,ii)==2)
gab3(:,:,ii) = sum(krom(:,:,ii)==3)
gab4(:,:,ii) = sum(krom(:,:,ii)==4)
end
for jj=1:uk_pop;
gabh1(:,:,jj)=numel(find(gab1(:,:,jj)~=2& gab1(:,:,jj)~=0))
gabh2(:,:,jj)=numel(find(gab2(:,:,jj)~=2& gab2(:,:,jj)~=0))
gabh3(:,:,jj)=numel(find(gab3(:,:,jj)~=2& gab3(:,:,jj)~=0))
gabh4(:,:,jj)=numel(find(gab4(:,:,jj)~=2& gab4(:,:,jj)~=0))
end
for ii=1:uk_pop;
tot(:,:,ii)=gabh1(:,:,ii)+gabh2(:,:,ii)+gabh3(:,:,ii)+gabh4(:,:,ii)
end
for ii=1:uk_pop;
while tot(:,:,ii)~=0;
for a=1:jum_kel
krom(a,:,ii)=randperm(jum_bag); %batasan tidak boleh satu kelompok melakukan …Run Code Online (Sandbox Code Playgroud) 我有一些矩阵:
A = [ 1 2 3 4 5 6;
1 2 3 4 5 6]
B = [ 6 5 4 3 2 1;
6 5 4 3 2 1]
C = [ 1 2 3 4 5 6;
1 2 3 4 5 6]
Run Code Online (Sandbox Code Playgroud)
什么是制作以下矩阵的代码:
Result = [1 2 9 9 10 11 5 5 5 6;
1 2 9 9 10 11 5 5 5 6]
Run Code Online (Sandbox Code Playgroud)
注意:实际上,上面的矩阵是3个矩阵的总和,其上面已经重新排列,如下面的矩阵.#sum是基于列的总和.
1 2 3 4 5 6
1 2 3 4 …Run Code Online (Sandbox Code Playgroud) 我正在尝试识别在此矩阵中具有> 2个"1"实例的连续三列组.
A=[1 2 3 4 5 6 7 8 9 10 11 0 0 0 0 0 0;
0 1 2 3 4 5 6 7 8 9 10 11 0 0 0 0 0;
0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 0 0;
1 2 3 4 5 6 7 8 9 10 11 0 0 0 0 0 0;
0 0 1 2 3 4 5 6 7 8 …Run Code Online (Sandbox Code Playgroud) 你可以给我建议我的代码,以改善时间计算.因为这段代码需要花费很多时间.有一段时间我不会得到结果.我的情况是如何组合RandomMatriceA [1 12]和RandomMatriceB [0 2].
例:
ProcessTime=[2 2 2 3 3] %number of consecutive value RandomMatriceA
RandomMatriceA=[1 2 3 4 5;
3 4 2 1 5;
1 4 2 3 5;
5 1 2 3 4]
RandomMatriceB=[0 2 0 0 1;%humber of consecutive zeros
0 0 0 1 1;
1 2 1 0 0;
0 0 1 1 1]
Result =[1 1 0 0 2 2 3 3 4 4 4 0 5 0 0 0;
3 3 4 4 …Run Code Online (Sandbox Code Playgroud)