MATLAB Answers

Brace indexing is not supported for variables of this type

3 views (last 30 days)
Mos_bad on 6 Dec 2019
Commented: Jeremy on 6 Dec 2019
Mu_s and Mu_d are cell. This if statement is part of a function which is called inside of a main for loop. I got the following error when execute the main script.
Brace indexing is not supported for variables of this type.
if Mu_s{scenario,i,j,k}<1.0 && Mu_d{scenario,i,j,k}<7.0
DS{scenario,i,j,k}=0; % no damage
elseif Mu_s{scenario,i,j,k}>1.0 && Mu_s{scenario,i,j,k}<2.0 && Mu_d{scenario,i,j,k}<7.0
DS{scenario,i,j,k}=1; % minor damage state
elseif Mu_s{scenario,i,j,k}>2.0 && Mu_s{scenario,i,j,k}<4.0 && Mu_d{scenario,i,j,k}<7.0
DS{scenario,i,j,k}=2; % moderate damage state
elseif Mu_s{scenario,i,j,k}>4.0 && Mu_s{scenario,i,j,k}<6.0 && Mu_d{scenario,i,j,k}<7.0
DS{scenario,i,j,k}=3; % major damage state
elseif Mu_s{scenario,i,j,k}>6.0 || Mu_d{scenario,i,j,k}>7.0
DS{scenario,i,j,k}=3; % collapse or complete damage state

Answers (1)

Jeremy on 6 Dec 2019
Mu_s{:} < 1.0 && Mu_d{:} < 7.0
Jeremy on 6 Dec 2019
Indexing the cell with curly braces should pull the scalar value and allow you to get a logical result, unless the value contained within the cell is another cell array.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!