如何用其他向量替换向量中的元素?

2次浏览(过去30天)
嗨,我目前正在尝试用其他向量替换名为“seq1”的向量中的元素。seq1有12个从1到9的数字,我试图用其他数字的向量替换每个数字,如下所示:
Seq1 = [1 2 3 4 5 6 7 8 9 2 4 5];
rectColor1 = [0.1 0.1 0.1];
rectColor2 = [0.15 0.15 0.15];
rectColor3 = [0.22 0.22 0.22];
rectColor4 = [0.30 0.30 0.30];
rectColor5 = [0.40 0.40 0.40];
rectColor6 = [0.55 0.55 0.55];
rectColor7 = [0.7 0.7 0.7];
rectColor8 = [0.85 0.85 0.85];
rectColor9 = [1 1 1];
I = 1: number (seq1)
如果Seq1 (i) == 1
seq1(i) = rectColor1;
elseifSeq1 (i) == 2
seq1(i) = rectColor2;
elseifSeq1 (i) == 3
seq1(i) = rectColor3;
elseifSeq1 (i) == 4
seq1(i) = rectColor4;
elseifSeq1 (i) == 5
seq1(i) = rectColor5;
elseifSeq1 (i) == 6
seq1(i) = rectColor6;
elseifSeq1 (i) == 7
seq1(i) = rectColor7;
elseifSeq1 (i) == 8
seq1(i) = rectColor8;
elseifSeq1 (i) == 9
seq1(i) = rectColor9;
结束
结束
然而,我一直得到以下错误:
不能执行赋值,因为左边和右边有不同数量的元素。
如何解决此问题?提前谢谢你。

接受的答案

埃米尔哈姆萨
埃米尔哈姆萨 2020年12月30日
不要动态创建变量名,如rectColor1, rectColor2, ..它总是使代码更加困难。下面展示了如何使用单元格数组轻松解决这个问题
Seq1 = [1 2 3 4 5 6 7 8 9 2 4 5];
rectColor{1} = [0.1 0.1 0.1];
rectColor{2} = [0.15 0.15 0.15];
rectColor{3} = [0.22 0.22 0.22];
rectColor{4} = [0.30 0.30 0.30];
rectColor{5} = [0.40 0.40 0.40];
rectColor{6} = [0.55 0.55 0.55];
rectColor{7} = [0.7 0.7 0.7];
rectColor{8} = [0.85 0.85 0.85];
rectColor{9} = [1 1 1];
Seq1 = cell2matrectColor (seq1)

更多答案(1)

图像分析
图像分析 2020年12月30日
也许这就是你想要的,在输出中有3行,其中每一列都有seq1标识的颜色:
Seq1 = [1 2 3 4 5 6 7 8 9 2 4 5];% 1-by-12
定义9种不同的颜色:
rectColor = 0 (3,9);初始化为3x9形状。
rectColor(:, 1) = [0.1 0.1 0.1]';
rectColor(:, 2) = [0.15 0.15 0.15]';
rectColor(:, 3) = [0.22 0.22 0.22]';
rectColor(:, 4) = [0.30 0.30 0.30]';
rectColor(:, 5) = [0.40 0.40 0.40]';
rectColor(:, 6) = [0.55 0.55 0.55]';
rectColor(:, 7) = [0.7 0.7 0.7]';
rectColor(:, 8) = [0.85 0.85 0.85]';
rectColor(:, 9) = [1 1 1]';
输出= 0(3,长度(seq1));初始化为适当的形状,3 * 12。
%为每个列粘贴适当的颜色:
输出= rectColor(:, seq1)
你会得到一个3 × 12矩阵,其中每一列都是一种颜色:
输出=
第1至9列
0.1 0.15 0.22 0.3 0.4 0.55 0.7 0.85
0.1 0.15 0.22 0.3 0.4 0.55 0.7 0.85
0.1 0.15 0.22 0.3 0.4 0.55 0.7 0.85
第10至12栏
0.15 0.3 0.4
0.15 0.3 0.4
0.15 0.3 0.4

类别

了解更多语言基础知识帮助中心而且文件交换

标签

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!