关闭

Matlab问答day12

标签: matlab作图编程
231人阅读 评论(0) 收藏 举报
分类:

1. colormap(hot)

colormap函数是配合画图函数的一个函数,用以调节图的颜色。

选项有许多,hot,cool,spring,winter...以适应各种图像颜色的需求。

colorbar也是类似colormap函数的一个函数,以给出某些彩色图像的色值,用颜色来表达某些值。

subplot(1,2,1),bar(rand(3,1)),colormap(hot),colorbar,title('hot')
subplot(1,2,2),bar(rand(3,1)),colormap(cool),colorbar,title('cool')

 

2. csv数据转化为double数组

实际上就是一个由多个数字构成的字符串数据,想要将其中的字符串拆分开来变成一个数据,而多个这样的字符串数据最后形成一个矩阵。

在Matlab上有元胞矩阵的帮忙比在C语言上好很多,不用in和out标记。

clear
clc
%将存在元胞矩阵中的字符串变换为数组
str = {'031 020 06 5 013';'25 16 23 09 18';'28 078 32 9 12'}

[m,n] = size(str);
for i = 1:m
    Mat(i,:) = Str2Mat(str(i,1));%%调用str2Mat函数,参数为上边元胞矩阵中的每个字符串
end
%%%注意,如果原元胞矩阵中的元素个数不统一,务要考虑循环中Mat的大小,否则会造成矩阵行列不匹配的情况
Mat


重新建立一个文件,存放函数str2Mat:

function Mat = Str2Mat(str)
%this funtion put string into a matrix which contains the numbers in the
%string
%str:string;Mat the data matrix

%%%示例数据
% % % str = {'0 15 36 70 9 8'};
strCell = str{1};
strLen = length(strCell);%find out the length of the string

%begin for loop in order to get every number in this string
Mat = [];
beginPosition = 0;
for i =1:strLen
    if strCell(i) ~= ' '%the first character of the string
        beginPosition = i;%if this is not a space, we can judge that it begins the number
        break;
    end
end

strArr{strLen} = [];
counter = 1;
for i = beginPosition:strLen
    if strCell(i) ~= ' '%将数字组成的字符串拆分成各数字组成的数组,组内的元素为数字的字符串
        strArr{counter} = [strArr{counter},strCell(i)];
    else
        counter = counter + 1;
    end
end

for i = 1:strLen
    if ~isempty(strArr{i})%将字符串翻译成数字,存入Mat中
        Mat(i) = str2double(strArr{i});
    end
end

end


最后结果如图:


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6359次
    • 积分:272
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档