0

假设我有以下类型的 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 循环似乎是一个可行的解决方案,尽管我不确定如何实现它。任何帮助将不胜感激。

4

1 回答 1

1

只需找到具有类别的行的索引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   
于 2018-04-08T06:24:23.440 回答