假设我有一个如下类型的MATLAB表:
Node_Number Generation_Type Total_power(MW)
1 Wind 600
1 Solar 452
1 Tidal 123
2 Wind 200
2 Tidal 159我想要做的是生成一个维度完全相同的表,唯一的区别是对应于风力发电类型的Total_Power列的数据值乘以0.5。因此,我会得到的结果是:
Node_Number Generation_Type Total_power(MW)
1 Wind 300
1 Solar 452
1 Tidal 123
2 Wind 100
2 Tidal 159我认为这样做的好处是,一些代码会扫描所有具有字符串'Wind‘的行,然后在找到具有该字符串的行之后,将此行的第3列乘以0.5。for循环似乎是一个可行的解决方案,但我不知道如何实现它。任何帮助都将不胜感激。
发布于 2018-04-08 06:24:23
只要找到包含类别Wind的行的索引,就可以通过调用T(index,:)来访问它们。
clc; clear;
T=readtable('data.txt');
rows = find(ismember(T.Generation_Type,'Wind'));
T(rows,:).Total_power_MW_=T(rows,:).Total_power_MW_*0.5输出:
Node_Number Generation_Type Total_power_MW_
___________ _______________ _______________
1 'Wind' 300
1 'Solar' 452
1 'Tidal' 123
2 'Wind' 100
2 'Tidal' 159 https://stackoverflow.com/questions/49711057
复制相似问题