【问题标题】:How to extract the sequence matrix elements?如何提取序列矩阵元素?
【发布时间】:2013-02-23 10:43:25
【问题描述】:

我有一个如下图所示的矩阵:

A=[2;1;8;5;4;7]

现在我需要将矩阵 A 提取为 2 部分:

newpoint=[2];
rest=[1;8;5;4;7];

然后再次应用循环以提取第二列作为新点:

newpoint=[1];
rest=[2;8;5;4;7];

再次应用循环以将第三列号作为新点:

newpoint=[8];
rest=[2;1;5;4;7];

取行序列中的数字,直到最后一行。 有人可以帮忙吗。谢谢!

【问题讨论】:

    标签: matlab loops matrix


    【解决方案1】:

    类似的事情可能会做:

    for i=1:length(A)    
        newpoint = A(i);
        if i==1
        rest = A(i+1:end);
        else
        if i== length(A);
        rest = A(1:end-1);
        else
        rest=A(1:i-1,i+1:end);
    
        ... stuff to do
    end
    

    【讨论】:

    • 您将 matlab 语法与其他语言的语法混合在一起! Matlab 使用() 来访问向量和矩阵的元素,而不是[]
    【解决方案2】:

    我会选择这样的:

    for i = 1:size(A,1)
        newpoint = A(i,1)
        rest = A;
        rest(i) = [];
        %# use rest and newpoint
    end
    

    或者,如果您希望将所有 restnewpoints 保存在一个矩阵中:

    newpoint = zeros(size(A,1),1);
    rest = zeros(size(A,1)-1,size(A,1));
    for i = 1:size(A,1)
        newpoint(i) = A(i,1);
        temp = A;
        temp(i) = [];
        rest(:,i) = temp;
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 2022-08-17
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多