如何从表中读取数据,然后对数据进行写入和排序?

时间:2017-07-11 09:24:07

标签: matlab

我有一个包含名称和数字列的表格。

我想将表中的数字读入矩阵,然后计算一些度量,将该计算的结果写为表末尾的新列,然后根据新列对表进行排序数据

我的代码如下:

`clc;
close all;
clear all;
Table1 = readtable('finalexcel.csv');
n = 7; 
pz = 100; 
a = rand(100,7);
zero = zeros(pz,1);
a = bsxfun(@rdivide,a.',sum(a.')).';
population = zeros(pz,n);
population = rand(100,7);
population = bsxfun(@rdivide,population.',sum(population.')).';%create     random number with sum equal 1 in each row
population = [population zero];

emp=146;
zero1 = zeros(emp,1);
CentralityMeasure  = Table1(:,4:11);
TPopulation = population';
 Measure = CentralityMeasure(:,1:7) * TPopulation(1:7,1);`

我收到以下错误:

  

未定义函数'mtimes'表示'table'类型的输入参数。

如何从表中读取数据,然后对数据进行写入和排序?

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

“mtimes”错误用于矩阵乘法。由于您无法对表进行矩阵运算,因此应使用table2array

将表格更改为矩阵
CentralityMeasure = table2array(Table1(:,4:11));

在此之后,您可以使用array2table恢复并写入原始表格(Table1);

答案 1 :(得分:0)

要向任何矩阵(M)插入新列,您可以使用horzcat matlab函数或只添加它:

M = [M, newcolumn]; % obviously the new column must have the same number of rows

根据您的新列值将其缩短:

[b,i] = sort(M(:,idx)); % idx is the index of your new column

sortedM = M(i,:);

您还可以查看sorting function in matlab

的更多选项