MATLAB Answers

How can i return a value based on mutliple fields?

1 ビュー (過去 30 日間)
Emma Kuttler
Emma Kuttler 2019 年 11 月 10 日
コメント済み: Emma Kuttler 2019 年 11 月 11 日
I have a structure named N2, with three fields - Components, PowerConsequences, and ICTConsequences.
>>N2 =
struct with fields:
Components: [43660×2 double]
PowerConsequences: [43660×1 double]
ICTConsequences: [43660×1 double]
>> fieldnames(N2)
ans =
3×1 cell array
{'Components' }
{'PowerConsequences'}
{'ICTConsequences' }
The components field is a vector with two columns, so N2.Components returns a list like this. It describes the combination of 2 components in a system, and the other fields describe effects.
290 296
291 292
291 293
291 294
291 295
291 296
292 293
And so on. How do i return a value in the field PowerConsequences or ICTConsequences based on two specific values in the field Components - ie for the values (290,296) in the Components field, how do i return the value in the PowerConsequences Field?

採用された回答

Shubham Gupta
Shubham Gupta 2019 年 11 月 11 日
編集済み: Shubham Gupta 2019 年 11 月 11 日
Try:
id = find(N2.Components(:,1) == 290 & N2.Components(:,2) == 296);
PowerConsequences_out = N2.PowerConsequences(id);
ICTConsequences_out = N2.ICTConsequences(id);
I hope it helps.
  1 件のコメント
Emma Kuttler
Emma Kuttler 2019 年 11 月 11 日
What if i wanted to return the average of everything with a specific value in the components field? Like the value in the field PowerConsequences for all combinations of components that contain component 1? Would it be something like this?
>> mean(id = find(N2.Components(:,1)=1)
My end goal is to take the average of all PowerConsequences for all combinations that include Component 1, Component 2, etc

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by