作业帮 > 综合 > 作业

Matlab怎么实现同一矩阵列的连接啊

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 11:54:14
Matlab怎么实现同一矩阵列的连接啊
如A=[1,2,3;4,5,6;7,8,9]我想变成
[123;
456;
789]这样3*1的形式
你可以尝试将数组变成字符串然后进行操作,参考代码如下:
clear
clc
A = [1 2 3;4 5 6;7 8 9];
n = size(A,1);
s = (num2str(A))';
s(isspace(s)) = []; %去除所有空格
s = s(:);
for fi = 1:n
    str(fi,1) = textscan(s,'%3c',1);    %循环提取s中的前3个字符串
    s = s(4:end);
end
A1 = str2double(str)    %字符串到数组

A1 =

   123
   456
   789
再问: 专业哈,我其实是把股票代码输出到excel中 但是出现了以下情况 A B C D E F G H I 6 0 0 0 0 0 . S Z 6 0 0 0 0 1 . S Z 我如何把他们和到A列中,输出呢? .SZ这个目前我处理不来
再答: 你的意思是不是输出一个既有数字又有字符的一个元胞数组。由于你的数值不是用来进行数据计算的,所以我建议你还是用字符的形式去处理数据。其实我一开始也是先想到下面同学所用的方法,但我觉得不好。这样的问题不能将数值看出数值运算,而应该看成字符运算。clear
clc
A = [6 0 0 0 0 0;6 0 0 0 0 1];
n = size(A,1);
s = (num2str(A))';
s(isspace(s)) = []; %去除所有空格
s = s(:);
for fi = 1:n  
    str(fi,1) = textscan(s,'%6c',1);    %循环提取s中的前6个字符串    
    s = s(7:end);    
end
for fi = 1:n
    str{fi} =  [str{fi},'.SZ'];
end

str最后显示结果如下:str =
    '600000.SZ'
    '600001.SZ'