How to make for loop to make various mathematical operations. Using matrices.

5 ビュー (過去 30 日間)
Darkhan Kenestegi
Darkhan Kenestegi 2016 年 12 月 15 日
回答済み: Steven Lord 2016 年 12 月 16 日
clear all
clc
magic=magic(5);
t = zeros(size(magic,1),1);
pi = zeros(size(magic,1),size(magic,2));
for i=1:size(magic,1)
    t(i)=sum(magic(i,:));
    pi(i)=magic(i,:)/t(i,1);
end

Above is my code I am currently using for testing. My idea is for every values in the row in magic, divide it by sum of that row (AKA it should be divided by 1 number).

回答 (3 件)

Purushottama Rao
Purushottama Rao 2016 年 12 月 16 日
編集済み: Purushottama Rao 2016 年 12 月 16 日
If it is a magic matrix, then its fairly simple..
m=magic(5);
s=sum(m);
ans= m/s(1)

José-Luis
José-Luis 2016 年 12 月 16 日
your_array = magic(5); %don't use a built-in function as a variable name
your_result = bsxfun(@rdivide,your_array, sum(your_array,2));

Steven Lord
Steven Lord 2016 年 12 月 16 日
If you're using release R2016b or later, you can use implicit expansion.
M = magic(5);
Y = M./sum(M, 2);

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by