whats wrong with this code?

1 visualización (últimos 30 días)
Muazma Ali
Muazma Ali el 12 de Ag. de 2022
Editada: Cris LaPierre el 12 de Ag. de 2022
Edit: added type statement to make code visible
Hi!
When I run similar code I get this error message saying:
type('assigning_values_to_character_arrays.m')
function assigning_values_to_character_arrays() nr_zones_analyzed=0; antall_soner=3; while nr_zones_analyzed<antall_soner % Here I actually have some functions that determines best_salt_1 and % best_salt_2 best_salt_1=input('Enter best_salt_1: ', 's'); best_salt_2=input('Enter best_salt_2: ', 's'); nr_zones_analyzed=nr_zones_analyzed +1; the_best_salt_1=string(best_salt_1); the_best_salt_1(nr_zones_analyzed)= string(best_salt_1); the_best_salt_2=string(best_salt_2); the_best_salt_2(nr_zones_analyzed)=string(best_salt_2); end for j= 1: antall_soner S1= the_best_salt_1(j); S2= the_best_salt_2(j); C{j}=sprintf('%s %s',S1,S2); end combination_of_salts=char(C{:}) end
Error using sprintf
Unable to convert 'string' value to 'char'.

Respuestas (2)

Image Analyst
Image Analyst el 12 de Ag. de 2022
I'd use character arrays instead of strings and a for loop instead of a while loop:
function assigning_values_to_character_arrays()
antall_soner = 3;
C = cell(antall_soner, 1)
for k = 1 : antall_soner
% Here I actually have some functions that determines best_salt_1 and best_salt_2
best_salt_1{k} = input('Enter best_salt_1: ', 's');
best_salt_2{k} = input('Enter best_salt_2: ', 's');
C{k} = sprintf('%s %s',best_salt_1{k}, best_salt_2{k});
end
combination_of_salts=char(C{:})
end

Cris LaPierre
Cris LaPierre el 12 de Ag. de 2022
Editada: Cris LaPierre el 12 de Ag. de 2022
I think this error may just mean you may just need to clear your workspace before running your code. At least I was able to reproduce after turning your function into a script and running it a couple times.
I would symplify your code to the following, keeping everything as strings.
antall_soner=3;
for nr_zones_analyzed = 1:antall_soner
% Here I actually have some functions that determines best_salt_1 and
% best_salt_2
best_salt_1=input('Enter best_salt_1: ', 's');
best_salt_2=input('Enter best_salt_2: ', 's');
C(nr_zones_analyzed,1) = string(best_salt_1) + " " + string(best_salt_2);
end
combination_of_salts=C

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by