根据 MATLAB 的特定字符串更改表中元素的值



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

只需找到类别为 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   

相关内容

  • 没有找到相关文章

最新更新