MATLAB矩阵(单元阵列)索引

MATLAB矩阵(单元阵列)索引,matlab,for-loop,matrix,indexing,cell,Matlab,For Loop,Matrix,Indexing,Cell,我刚刚开始学习MATLAB。 请在下面找到我的代码 m= ['A','B','C']; cs=size(m,2); for i=1:cs for j=1:cs if i~=j s1=(m(i));s2=',';s3=(m(j)); s=strcat(s1,s2,s3); disp(s); end end end 它在命令窗口上生

我刚刚开始学习MATLAB。 请在下面找到我的代码

m= ['A','B','C'];
cs=size(m,2);
for i=1:cs
    for j=1:cs

            if i~=j
             s1=(m(i));s2=',';s3=(m(j));
                 s=strcat(s1,s2,s3);
                     disp(s);
        end    
    end
end
它在命令窗口上生成以下输出

A,B
A,C
B,A
B,C
C,A
C,B
但是,我想把所有的输出打包成一个矩阵(或单元数组),比如说new_M。 因此,new_M的值应包含上述所有值,如下所示

new_M (6,1) =
[ A,B 
A,C
B,A
B,C
C,A
C,B ] 

我们将非常感激你的帮助。提前谢谢。

这会有用的。在“c”中,您将找到值

    m= ['A','B','C'];
cs=size(m,2);
c = cell(6,1)
t = 1;
for i=1:cs
    for j=1:cs

            if i~=j
             s1=(m(i));s2=',';s3=(m(j));
                 s=strcat(s1,s2,s3);
                 disp(s)
                 c{t} = s;
                 t=t+1;
        end    
    end
end

这会奏效的。在“c”中,您将找到值

    m= ['A','B','C'];
cs=size(m,2);
c = cell(6,1)
t = 1;
for i=1:cs
    for j=1:cs

            if i~=j
             s1=(m(i));s2=',';s3=(m(j));
                 s=strcat(s1,s2,s3);
                 disp(s)
                 c{t} = s;
                 t=t+1;
        end    
    end
end

这会奏效的。在“c”中,您将找到值

    m= ['A','B','C'];
cs=size(m,2);
c = cell(6,1)
t = 1;
for i=1:cs
    for j=1:cs

            if i~=j
             s1=(m(i));s2=',';s3=(m(j));
                 s=strcat(s1,s2,s3);
                 disp(s)
                 c{t} = s;
                 t=t+1;
        end    
    end
end

这会奏效的。在“c”中,您将找到值

    m= ['A','B','C'];
cs=size(m,2);
c = cell(6,1)
t = 1;
for i=1:cs
    for j=1:cs

            if i~=j
             s1=(m(i));s2=',';s3=(m(j));
                 s=strcat(s1,s2,s3);
                 disp(s)
                 c{t} = s;
                 t=t+1;
        end    
    end
end
new_M
矩阵将包含您需要的所有值

new_M
矩阵将包含您需要的所有值

new_M
矩阵将包含您需要的所有值


new\u M
矩阵将包含您需要的所有值。

实现这一点的惯用方法是使用
nchoosek
获取您想要的索引,然后使用线性索引:

m = ['A','B','C'] %// For a char array OR
m = {'A','B','C'} %// For a cell array
I = nchoosek(1:numel(m), 2)
new_M = m([I; I(:,end:-1:1)])

实现这一点的惯用方法是使用
nchoosek
获取所需的索引,然后使用线性索引:

m = ['A','B','C'] %// For a char array OR
m = {'A','B','C'} %// For a cell array
I = nchoosek(1:numel(m), 2)
new_M = m([I; I(:,end:-1:1)])

实现这一点的惯用方法是使用
nchoosek
获取所需的索引,然后使用线性索引:

m = ['A','B','C'] %// For a char array OR
m = {'A','B','C'} %// For a cell array
I = nchoosek(1:numel(m), 2)
new_M = m([I; I(:,end:-1:1)])

实现这一点的惯用方法是使用
nchoosek
获取所需的索引,然后使用线性索引:

m = ['A','B','C'] %// For a char array OR
m = {'A','B','C'} %// For a cell array
I = nchoosek(1:numel(m), 2)
new_M = m([I; I(:,end:-1:1)])

谢谢一顿克内德塞普先生谢谢一顿克内德塞普先生谢谢一顿克内德塞普先生谢谢一顿克内德塞普先生谢谢一顿JNY Ranger先生和sandyThanks先生一顿JNY Ranger先生和sandyThanks先生一顿JNY Ranger先生和sandyThanks先生一顿SalvatoreThanks先生一顿SalvatoreThanks先生一顿SalvatoreThanks先生一吨Salvatore先生