Matlab生成字符串矩阵

clear
clc
num=13;
fildId=fopen('temp2.txt','w');
for j=1:num
    for i=1:num
        if(i<11&&j<11)
            fprintf(fildId,'%s%s%s\t','a',num2str(j-1),num2str(i-1));
        else
            fprintf(fildId,'%s%s%s%s\t','a',num2str(j-1),'t',num2str(i-1));
        end
    end
    fprintf(fildId,'\n');
end

fclose(fildId);
fid=fopen('temp2.txt');
data0=textscan(fid,'%s');  %data0是1*1的元组->4000*1元组,调用的话只需要data0{1,1}{i,1}即可
data1=cell(0);
for i=1:num
    for j=1:num
        data1{i,j}=data0{1,1}{num*(j-1)+i,1};
    end
end
temp='';
%对角线是零
for i=1:num
    for j=1:num
        if i==j
            data1{j,i}='0';
        end
    end
    %data1{i,i}=temp;
    %temp='';
end
%对角线生成非零元素
%{
for i=1:num
    for j=1:num
        if i~=j
            temp2=strcat('-',data1{j,i});
            temp=strcat(temp,temp2);
        end
    end
    data1{i,i}=temp;
    temp='';
end
%}
%下面是写入部分
fclose(fid);
fid0=fopen('temp0.txt','w');
for i=1:num
    for j=1:num
%         a=data1{i,j};
%         a=cell2mat(a);
        fprintf(fid0,'%s\t',data1{i,j});
    end
    fprintf(fid0,'\n');
end
fclose(fid0);
% for i=1:20
%     for j=1:20
%         if i==j
%             fprintf(fildId,'%s%s%s%s\t','a',num2str(j-1),'t',num2str(i-1));
%fclose(fildId);
%data=dlmread('temp.txt',',');

 

你可能感兴趣的:(Matlab生成字符串矩阵)