matlab rows,调整表或时间表的方向以使行成为变量

将数据从电子表格读取到表中。显示前三行。

T1 = readtable('patients.xls');

head(T1,3)

ans=3×10 table

LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus

____________ __________ ___ _____________________________ ______ ______ ______ ________ _________ ________________________

{'Smith' } {'Male' } 38 {'County General Hospital' } 71 176 true 124 93 {'Excellent'}

{'Johnson' } {'Male' } 43 {'VA Hospital' } 69 163 false 109 77 {'Fair' }

{'Williams'} {'Female'} 38 {'St. Mary's Medical Center'} 64 131 false 125 83 {'Good' }

对 T1 的行调整方向,使其成为新表 T2 的变量。将 T1 中的 LastName 变量指定为 T2 中变量名称的来源。

T2 = rows2vars(T1,'VariableNamesSource','LastName');

显示 T2 的前四个变量。T2 的第一个变量包含 T1 的变量的名称。T2 的其余变量对应于 T1 的行。

T2(:,1:4)

ans=9×4 table

OriginalVariableNames Smith Johnson Williams

____________________________ ___________________________ _______________ _____________________________

{'Gender' } {'Male' } {'Male' } {'Female' }

{'Age' } {[ 38]} {[ 43]} {[ 38]}

{'Location' } {'County General Hospital'} {'VA Hospital'} {'St. Mary's Medical Center'}

{'Height' } {[ 71]} {[ 69]} {[ 64]}

{'Weight' } {[ 176]} {[ 163]} {[ 131]}

{'Smoker' } {[ 1]} {[ 0]} {[ 0]}

{'Systolic' } {[ 124]} {[ 109]} {[ 125]}

{'Diastolic' } {[ 93]} {[ 77]} {[ 83]}

{'SelfAssessedHealthStatus'} {'Excellent' } {'Fair' } {'Good' }

显示 T2.Smith 中的数据。在本示例中,T2 的每个变量都是一个 9×1 元胞数组,因为 T1 的行中的值不能串联成数组。

T2.Smith

ans=9×1 cell array

{'Male' }

{[ 38]}

{'County General Hospital'}

{[ 71]}

{[ 176]}

{[ 1]}

{[ 124]}

{[ 93]}

{'Excellent' }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用如下代码去除 cell 数组中的空白行: ```matlab % 创建一个包含空白行的 cell 数组 cellArr = {'a', 'b', ''; '', 'c', ''; 'd', '', 'e'; 'f', 'g', 'h'}; % 删除空白行 cellArr = cellArr(~cellfun('isempty',cellArr(:,1)),:); ``` 在这个例子中,我们首先创建了一个包含空白行的 cell 数组 `cellArr`。然后,我们使用 `cellfun` 函数和 `isempty` 函数来找到空白行的位置。最后,我们使用 `~` 运算符来删除空白行。 执行上述代码后,`cellArr` 数组中的空白行将被删除。 ### 回答2: MATLAB中可以使用`cellfun`函数结合匿名函数来去除cell数组中的空白行。 首先,我们先创建一个包含空白行的cell数组: ```matlab C = {'abc', 'def', ''; '', 'ghi', ''; 'jkl', '', 'mno'}; ``` 使用`cellfun`函数结合匿名函数可以实现对每个元素的操作。我们定义一个匿名函数,使用`isempty`函数检查cell数组的每个元素是否为空字符串,并返回一个逻辑值。 ```matlab f = @(x) isempty(x); ``` 然后,我们可以使用`cellfun`函数来将匿名函数应用到每个元素上。通过传入`'UniformOutput', false`作为参数,`cellfun`将返回一个逻辑值的cell数组。 ```matlab emptyRows = cellfun(f, C, 'UniformOutput', false); ``` 接下来,我们可以使用逻辑索引,通过保留`emptyRows`中值为`false`的行,来去除cell数组中的空白行。 ```matlab C = C(~cell2mat(emptyRows), :); ``` 最后,我们可以显示结果: ```matlab C ans = 'abc' 'def' 'ghi' '' 'jkl' '' 'mno' ``` 这样,我们成功去除了cell数组中的空白行。 ### 回答3: MATLAB去除cell空白行的方法有多种,以下是一种可行的解决方案: 假设我们需要去除的cell格被称为cell_array,其中包含多行数据。首先,我们可以使用函数cellfun来遍历cell_array中的每个元素,并使用函数isempty来检查每个元素是否为空。然后,我们可以使用逻辑索引来标记cell_array中空白行所在的行索引。最后,我们可以使用这些索引来从cell_array中删除空白行。 具体步骤如下: 1. 声明一个逻辑变量empty_rows,并初始化为全false。这个变量将用于标记cell_array中空白行所在的行索引。 2. 使用函数cellfun来遍历cell_array中的每个元素,并使用函数isempty来检查每个元素是否为空。将结果赋值给empty_rows。 ``` empty_rows = cellfun(@isempty, cell_array); ``` 3. 使用逻辑索引empty_rows来获取空白行所在的行索引。 ``` row_indices = find(empty_rows); ``` 4. 使用setdiff函数将所有行索引与空白行所在的行索引的差集赋值给nonempty_rows。这样,nonempty_rows将包含了cell_array中非空白行所在的行索引。 ``` nonempty_rows = setdiff(1:size(cell_array, 1), row_indices); ``` 5. 使用非空白行的索引nonempty_rows来从cell_array中获取非空白行的内容。 ``` nonempty_cell_array = cell_array(nonempty_rows, :); ``` 通过以上步骤,我们就可以从cell_array中去除空白行,并将非空白行的内容存储在nonempty_cell_array中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值