Convert a vector in Character array after a for loop
2 次查看(过去 30 天)
显示 更早的评论
Hi, given the following code
n=length(x)
f = zeros(1,n)
for i = 1:n
if x(i) == 1
f(1,i) = 22;
elseif x(i)==2
f(1,i) = 23;
elseif x(i)==3
f(1,i)= 21;
elseif x(i)==4
f(1,i) = 23;
elseif x(i)==5
f(1,i)= 24;
end
end
C= char (f)
I don't know why but the 'char' conversion doesn't work giving to me the following
so with nothing inside the vector, that I need later for a switch case.
Do you know how to fix the problem?
8 个评论
Stephen23
2019-7-24
编辑:Stephen23
2019-7-24
"I don't know hot to do because I'm a really beginner."
That is okay, we are here to help. But so far you have not actually described what you are trying to achieve: you have not explained how the result/output should be derived from the input, or provided example input and output arrays.
Without a specification we have to rely on guessing what you are trying to achieve.
Forget about code, what are you trying to do ?
采纳的回答
Stephen23
2019-7-24
Avoiding character manipulations using basic indexing:
>> x = [1,2,3,1];
>> V = 'A':'Z';
>> V(x)
ans = ABCA
更多回答(1 个)
Matt J
2019-7-24
Perhaps this is what you want?
>> f=[1,2,3,4], F=char(64+f)
f =
1 2 3 4
F =
'ABCD'
2 个评论
Matt J
2019-7-24
You can loop over the elements of f,
n=length(x)
f = zeros(1,n)
for i = 1:n
switch f(i)
case 22
case 23
case 24
...
end
end
but I have a nagging feeling that a switch-case is not the best way of doing whatever it is you're trying to do.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!