如何将单元格数组转换为稀疏矩阵?

时间:2014-12-08 20:06:54

标签: excel matlab matrix sparse-matrix

我试图将Excel电子表格(link)转换为MATLAB稀疏矩阵。

如何将其作为工作稀疏矩阵导入MATLAB?到目前为止,我所能做的就是将其转换为单元阵列...... 我试图用这个函数首先转换我的名字矩阵:

function [names,links]=Changing(WorldReligion)
i=0;
names={};
for i=1:337
        if WorldReligion(i,1)~=WorldReligion(i+1,1)
        names(i)=WorldReligion(i,1);
    end

end

然而,我收到此错误:

[names , links]=Changing(WorldReligion) Undefined function 'ne' for
input arguments of type 'cell'.

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是一个简短的答案,因为它看起来很糟糕,但如果您想从电子表格中获取唯一的宗教名称,则可以使用适用于字符串单元格数组的unique函数。在您获取电子表格第1列的情况下,请使用:

clear
clc

[~, text, ~] = xlsread('WorldReligion.xlsx');

UniqueNames = unique(text(:,1));

whos

whos的输出:

Name               Size             Bytes  Class    Attributes

  UniqueNames      117x1              15654  cell               
  text             388x10            452500  cell

这将从“text”数据的第一列中检索117个唯一名称,我认为这是您想要对上述for循环执行的操作。是这样的吗?