I am using following lines of matlab code to assign new variables to print on plot.
if(dependent_vars{jj} == 'act_y_ha')
par = 'act\_y\_ha'
end
if(dependent_vars{jj} == 'act_per_ha')
par = 'act\_per\_ha'
end
This code is giving following error
par = 'act\_y\_ha'
Arrays have incompatible sizes for this operation.
Error in ds_reg (line 69)
if(dependent_vars{jj} == 'act_per_ha')
I request you to kindly suggest me to fix the error.
Devendra

 채택된 답변

Konstantinos
Konstantinos 2024년 4월 13일

0 개 추천

The error you're encountering, "Arrays have incompatible sizes for this operation," suggests that the comparison operation == between the string 'act_per_ha' and the cell array element dependent_vars{jj} is causing an issue due to incompatible sizes or types.
To fix this error, you can use the strcmp function to compare strings in MATLAB. Here's the corrected code:
if strcmp(dependent_vars{jj}, 'act_y_ha')
par = 'act\_y\_ha';
end
if strcmp(dependent_vars{jj}, 'act_per_ha')
par = 'act\_per\_ha';
end

댓글 수: 6

Devendra
Devendra 2024년 4월 13일
Thank you very much for your kind help. However, following error has occured;
Error using strcmp
Not enough input arguments.
Error in ds_reg (line 66)
if strcmp(dependent_vars{jj} == 'act_y_ha');
Please suggest me how to assign new variables?
Deva
>>
Voss
Voss 2024년 4월 13일
편집: Voss 2024년 4월 13일
It's
strcmp(dependent_vars{jj}, 'act_y_ha')
not
strcmp(dependent_vars{jj} == 'act_y_ha')
Devendra
Devendra 2024년 4월 13일
Thanks a lot for your kind help, Deva
@Devendra: You're welcome!
Note that an easy way to prepend a backslash to all underscores in all elements of dependent_vars is:
dependent_vars = strrep(dependent_vars,'_','\_');
Devendra
Devendra 2024년 4월 13일
Thank you very much for your help, Devendra
Star Strider
Star Strider 2024년 4월 13일
@Devendra — See: Answer

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Star Strider
Star Strider 2024년 4월 13일

0 개 추천

Use the strrep function instead of the if block —
jj = 1;
dependent_vars{jj} = 'act_per_ha';
jj = 2;
dependent_vars{jj} = 'act_per_ha';
jj = 3;
dependent_vars{jj} = 'line with no underscores';
for jj = 1:numel(dependent_vars)
dependent_vars{jj} = strrep(dependent_vars{jj}, '_', '\_');
end
dependent_vars{:}
ans = 'act\_per\_ha'
ans = 'act\_per\_ha'
ans = 'line with no underscores'
.

댓글 수: 2

Devendra
Devendra 2024년 4월 14일
Thank you for your help. Deva
Star Strider
Star Strider 2024년 4월 14일
My pleasure!

댓글을 달려면 로그인하십시오.

질문:

2024년 4월 13일

편집:

2024년 4월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by