我有一个包含名称和数字列的表格。
我想将表中的数字读入矩阵,然后计算一些度量,将该计算的结果写为表末尾的新列,然后根据新列对表进行排序数据
我的代码如下:
`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'类型的输入参数。
如何从表中读取数据,然后对数据进行写入和排序?
感谢您的时间。
答案 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,:);
的更多选项