如何提取一行矩阵

时间:2012-09-30 17:05:04

标签: matlab matrix

如果我有一个矩阵,如果我有一个矩阵,如果我调用一个单维索引,结果将是一个数组。我不知道为什么在Matlab中如果你采用矩阵的单个索引,你将会得到一个单一的元素,这是愚蠢的 无论如何在C:

mat[4][4];

mat [0]是一个数组。

在Matlab中:

mat=[1 2; 3 4];

如何获取矩阵的第一行? mat(1)是1,而不是[1 2]。

编辑:还有另一个问题,我对此功能有问题:

function str= split(string, del)

index=1;
found=0;

str=['' ; ''];

for i=1:length(string)
    if string(i)==del
        found=1;
        index=1;
    elseif found==1
        str(2,index)=string(i);
        index=index+1;
    else
        str(1,index)=string(i);
        index=index+1;
    end
end

end

这有时会返回一个矩阵,有时会返回一个数组 例如,如果我使用split('FF','。')我得到'FF'作为结果,但如果我想返回矩阵怎么办?我甚至无法选择矩阵的维度,在这种情况下,弱类型语言是一个很大的优势。

3 个答案:

答案 0 :(得分:9)

您必须说出您想要的列。 :代表维度中的所有索引,因此取第一行

mat(1,:)

这不是愚蠢的,但很有用。如果您只处理一个只有一个索引的矩阵,它会隐式转换为向量。这使您可以选择使用线性索引(参见sub2ind)。

答案 1 :(得分:5)

这将提取第二行

vector = mat(2,:)

这将提取第二列

vector = mat(:,2) 

您可以使用

vector = mat(end,:)

提取最后一行

希望这有助于你

答案 2 :(得分:2)

来自Matrix Indexing in MATLAB

  

当您仅使用一个下标MATLAB索引矩阵A.   对待A就好像它的元素在长列向量中被排列一样,   连续按下列

我只是希望你不再愚蠢了(以及来自angainor和Marwan的正确答案)

相关问题