查看: 140|回复: 8|关注: 0

[已解决] 怎么创建空白字符串

[复制链接]

新手

15 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
B = 1,0随机
A = zeros(100,1)

for i = 1:100
    if B(i) == 1
        A(i) = 'asdasfa';
    else
        A(i) = 'qweqwef';
    end
end

上面这个报错,怎么使变量A变成一列字符串变量?

MATLAB 基础讨论
版块优秀回答者

入门

195 麦片

财富积分


50500


1

主题

93

帖子

25

最佳答案
  • 关注者: 5
发表于 2020-2-10 20:46:14 | 显示全部楼层
你好,创建空白字符串的代码是
  1. A = '';
复制代码

你这个问题报错的原因是,预声明 A 为数组,而不是字符数组。
可以试试一下代码
  1. B = 1,0随机
  2. A = '';

  3. for i = 1:100
  4.     if B(i) == 1
  5.         A = [A,'asdasfa'];
  6.     else
  7.         A = [A,'qweqwef'];
  8.     end
  9. end
复制代码

新手

15 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2020-2-10 20:48:55 | 显示全部楼层
gopher 发表于 2020-2-10 20:46
你好,创建空白字符串的代码是
你这个问题报错的原因是,预声明 A 为数组,而不是字符数组。
可以试试一下 ...

A是一列元素,怎么处理?假设100行,1列。

MATLAB 基础讨论
版块优秀回答者

入门

195 麦片

财富积分


50500


1

主题

93

帖子

25

最佳答案
  • 关注者: 5
发表于 2020-2-10 20:57:42 | 显示全部楼层 |此回复为最佳答案
IAe 发表于 2020-2-10 20:48
A是一列元素,怎么处理?假设100行,1列。

1. 若你每次赋值的字符串长度 ('asdasfa' 或 'qweqwef')相同,则可以创建一个二维字符串数组;
  1. B = 1,0随机
  2. A = '';

  3. for i = 1:100
  4.     if B(i) == 1
  5.         A = [A;'asdasfa'];
  6.     else
  7.         A = [A;'qweqwef'];
  8.     end
  9. end
复制代码


2. 若你每次赋值的字符串长度 ('asdasfa' 或 'qweqwef')不相同,则无法创建二维字符数组。
3. cell 矩阵可以处理行列不等的字符数组
  1. B = 1,0随机
  2. A = cell(100,1);

  3. for i = 1:100
  4.         if B(i) == 1
  5.         A{i} = 'asdasfa';
  6.         else
  7.         A{i} = 'qweqwef';
  8.         end
  9. end
复制代码


一个类似于列向量的字符数组确实存在,除非每行只有一个字符。

新手

15 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2020-2-10 21:49:27 | 显示全部楼层
gopher 发表于 2020-2-10 20:57
1. 若你每次赋值的字符串长度 ('asdasfa' 或 'qweqwef')相同,则可以创建一个二维字符串数组;

确实解决了,不过我后续会把这个其他合并在一起,没法合并;其他变量都是显示100*1 double,这个变量是100*1 cell,这怎么处理?

MATLAB 基础讨论
版块优秀回答者

入门

195 麦片

财富积分


50500


1

主题

93

帖子

25

最佳答案
  • 关注者: 5
发表于 2020-2-10 21:57:16 | 显示全部楼层
IAe 发表于 2020-2-10 21:49
确实解决了,不过我后续会把这个其他合并在一起,没法合并;其他变量都是显示100*1 double,这个变量是10 ...

你要进行什么操作。

这本来就是不同的数据类型。除非你把字符串映射为更易处理的数值或逻辑值。

新手

15 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2020-2-10 22:16:28 | 显示全部楼层
gopher 发表于 2020-2-10 21:57
你要进行什么操作。

这本来就是不同的数据类型。除非你把字符串映射为更易处理的数值或逻辑值。 ...

这些变量我后面想合成一张表,有数字,有字符……不可以吗,只能数字归数字,字符归字符?

MATLAB 基础讨论
版块优秀回答者

入门

195 麦片

财富积分


50500


1

主题

93

帖子

25

最佳答案
  • 关注者: 5
发表于 2020-2-10 22:25:22 | 显示全部楼层
IAe 发表于 2020-2-10 22:16
这些变量我后面想合成一张表,有数字,有字符……不可以吗,只能数字归数字,字符归字符? ...

个人理解,只能使用 cell 矩阵,cell 矩阵可以是任何数据类型。但是 cell 矩阵的处理非常速度就慢很多了。

新手

15 麦片

财富积分


050


5

主题

19

帖子

0

最佳答案
 楼主| 发表于 2020-2-10 22:36:12 | 显示全部楼层
gopher 发表于 2020-2-10 22:25
个人理解,只能使用 cell 矩阵,cell 矩阵可以是任何数据类型。但是 cell 矩阵的处理非常速度就慢很多了 ...

好的,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表